我有一系列简单的锚标记,我希望锚的文本出现在输入字段中。
如何使用Javascript识别单击的锚点而不是第一个锚点标记,如附加脚本中所示? 总和
<script type="text/javascript">
function test()
{
var var1 = document.getElementById('add2').innerHTML;
document.getElementById('add').value = var1;
}
</script>
</HEAD>
<BODY>
<FORM NAME="myform">
<INPUT TYPE="text" ID="add" NAME="result" VALUE=""/>
</FORM>
</BODY>
<br>
<br>
<a id="add2" onclick="test()" href="#" >Test1</a>
<br>
<a id="add2" onclick="test()" href="#" >Test2</a>
答案 0 :(得分:1)
您可以使用jquery执行此操作。只需将类添加到锚标记即可。
<body>
<FORM NAME="myform">
<INPUT TYPE="text" ID="add" NAME="result" VALUE=""/>
</FORM>
<br>
<br>
<a id="add1" class="anchor" href="javascript:void(0)" >Test1</a>
<br>
<a id="add2" class="anchor" href="javascript:void(0)" >Test2</a>
</body>
$(document).ready(function() {
$(".anchor").click(function() {
var val = $(this).text();
$("#add").val(val);
});
});
你可以看到它在这里工作。 https://jsfiddle.net/ctzzfqm1/
答案 1 :(得分:0)
您应该将点击的元素对象传递给方法:
<a id="add2" onclick="test(this)" href="#" >Test1</a>
<a id="add2" onclick="test(this)" href="#" >Test2</a>
然后使用元素上下文来访问其文本:
function test(obj){
document.getElementById('add').value = obj.innerHTML;
}
答案 2 :(得分:0)
答案 3 :(得分:0)
您的代码无效,因为HTML中的ID必须是唯一的。我建议使用addEventListener
而不是丑陋的内联点击处理程序绑定事件
window.onload = function() {
var elements = document.getElementsByClassName('add2');
for (var i = 0; i < elements.length; i++) {
elements[i].addEventListener('click', function() {
document.getElementById('add').value = this.innerHTML;
}, false);
}
}
<INPUT TYPE="text" ID="add" NAME="result" VALUE="" />
<br>
<a class='add2' href="#">Test1</a>
<br>
<a class='add2' href="#">Test2</a>
参考文献: