我是jquery的新手。我的应用程序中有一个链接列表。我希望能够获取任何链接的title属性,并在单击链接时将其放在页面上的文本框中。这是我到目前为止所做的,但它不起作用:
<p><a href="#" title="text I want to get">Link 1</a></p>
<p><a href="#" title="more text I want to get">Link 2</a></p>
<p><input id="myTextBox" type="text"></p>
$("a").attr("title").click(function () {
$('#myTextBox').attr($(this).attr());
});
非常感谢任何帮助。谢谢!
答案 0 :(得分:2)
你有很多合适的关键字,但它们并没有很好地连线。例如,.attr()
getter不可链接。
这将获得具有标题的所有链接,并为其添加点击处理程序:
$('a[title]').on('click', function(){
$('#myTextBox').val( $(this).attr('title') );
// ^^ this returns a string and passes it to .val()
});
单击时,文本框的值将替换为链接的title属性值。
这可能更冗长一点。如果你是新手,我建议最初写这样的东西,因为它使调试更容易。一旦你对jQuery的做事方式更加满意,更密集,更有链接的方法会更自然。
$('a[title]').on('click', function(){
var $link = $(this);
var titleText = $link.attr('title');
var $textbox = $('#myTextBox');
$textbox.val(titleText);
});
答案 1 :(得分:0)
我可以看到导致你产生这种情况的逻辑,但我强烈建议您阅读docs和API Reference,以便更好地了解该怎么做。
那就是说,这应该可以帮到你:
$('p').on('click', 'a', function(){
var title = $(this).attr('title');
$("#myTextBox").val( title );
});
一个解释,这样你就可以知道这里发生了什么:
我没有使用click()
,而是使用on()
,它委托事件而不是将它们附加到特定事件。因此,如果它检测到任何p
元素上的点击事件,并且只要该元素的目标是中的a
元素给定p
元素,它会执行处理程序。
然后,我们将点击链接的title
属性的值分配给变量title
。
然后,我们只需将输入的value
属性设置为所述标题变量,即可。