javascript通过链接标题更改输入值

javascript通过链接标题更改输入值,javascript,input,default-value,Javascript,Input,Default Value,我是JavaScript新手,我需要一些帮助来解决我遇到的一个简单问题: 我有一个空输入字段和两个链接(锚定),它们的标题属性值不同 我想编写一小段JavaScript,将input元素的值更改为用户单击的任何链接的标题 例如: 第一个链接=布拉格 第二个链接=布达佩斯 单击“布达佩斯”时,我希望input元素的值更改为“布达佩斯” 如果需要,我可以提供一个基本的jsFiddle,但希望我已经说得足够清楚了。这个过程将是找到所有的锚,然后附加一个单击处理程序,该处理程序将输入值设置为单击锚的ti

我是JavaScript新手,我需要一些帮助来解决我遇到的一个简单问题:

我有一个空输入字段和两个链接(
锚定
),它们的
标题
属性值不同

我想编写一小段JavaScript,将
input
元素的值更改为用户单击的任何链接的标题

例如:

第一个链接=
布拉格

第二个链接=
布达佩斯

单击“布达佩斯”时,我希望
input
元素的值更改为“布达佩斯”


如果需要,我可以提供一个基本的
jsFiddle
,但希望我已经说得足够清楚了。

这个过程将是找到所有的锚,然后附加一个单击处理程序,该处理程序将输入值设置为单击锚的
title
属性。下面的示例查找页面上的所有锚定,但您可能更喜欢添加一个类并使用
document.querySelectorAll()
(旧IE不完全支持)

HTML


JavaScript:

window.onload = function(){
    var anchors = document.getElementsByTagName('a');
    for(var i=0; i<anchors.length; i++){
        anchors[i].onclick = function(){
            document.getElementById("myinput").value = this.getAttribute("title");
            return false;
        }
    }
};
window.onload=function(){
var archors=document.getElementsByTagName('a');

对于(var i=0;i如果项目真的这么小,那么可能更容易将一些
onclick
处理程序附加到锚,然后定义一个非常基本的函数来更新输入元素

HTML

<a href="#" title="Prague" onclick="updateValue(this.title, event);">Prague</a>
<a href="#" title="Budapest" onclick="updateValue(this.title, event);">Budapest</a>
<input type="text" id="country" name="country" value="" />
例如:

如果您有大量的锚,那么手动添加单个
onclick
处理程序将是一件非常痛苦的事情,为了避免这种情况,您可以简单地将内容包装在包含元素中,然后以编程方式将
click
事件处理程序应用于所有嵌套锚:

示例:

尝试以下方法:

Html


Javascript

<script>
function changeTitle(changeVal){
  var link_text = $('#'+changeVal).text();
  $("#test").val(link_text);   
}
</script>

函数changeTitle(changeVal){
var link_text=$('#'+changeVal).text();
$(“#测试”).val(链接文本);
}

FWIW,我不相信使用
window.onload
etc风格的钩子会让答案变得杂乱无章,除非它们与问题直接相关。这取决于问题,在这个特定的问题中,我觉得如果OP没有包含DOM就绪的包装器,避免进一步的注释来解决问题是相关的。公平点,除了这里有数百个其他问题已经解决了这个具体问题。另外,如果OP遵循“最佳实践”并将代码放在body标记的末尾,他们根本不需要使用事件处理程序。根据我的经验,如果答案不起作用,这一级别的人通常会向答案作者寻求澄清,特别是在这种情况下,如果没有包含DOM就绪包装,将不会产生任何后续错误“最佳做法“通常将脚本放在body标记的末尾与外部脚本下载或下载其他外部文件的脚本有关,不一定是嵌入的JavaScript。此外,并非所有人都同意这是最佳做法,请查看StackOverflow源代码,但无论如何,这与此问题/答案的主题有很大的出入。
function updateValue(val, event) {
    document.getElementById("country").value = val;
    event.preventDefault();
}
<a href="javascript:void(0);" id="Budapest" onclick="changeTitle('Budapest')">Budapest</a>
<a href="javascript:void(0);" id="Prague" onclick="changeTitle('Prague ')">Prague       
</a>

<input type="text" id="test"/>
<script>
function changeTitle(changeVal){
  var link_text = $('#'+changeVal).text();
  $("#test").val(link_text);   
}
</script>