2

我是 jquery 的新手。我的应用程序中有一个链接列表。我希望能够获取任何链接的标题属性,并在单击链接时将其放在页面上的文本框中。这是我到目前为止所得到的,但它不起作用:

 <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">​&lt;/p>

$("a").attr("title").click(function () {
$('#myTextBox').attr($(this).attr());
});

任何帮助将不胜感激。谢谢!

4

2 回答 2

2

您有很多正确的关键字,但它们的连接并不完全正确。例如,.attr()getter 是不可链接的。

这将获取所有具有标题的链接并将点击处理程序添加到它们:

$('a[title]').on('click', function(){ 
  $('#myTextBox').val( $(this).attr('title') );
  //                            ^^ this returns a string and passes it to .val()
});

单击时,文本框的值将替换为链接的标题属性值。

这可能会更冗长一些。如果您是新手,我建议您最初编写类似这样的内容,因为它使调试变得更加容易。一旦您对 jQuery 的处理方式更加熟悉,更密集的链式方法将更加自然。

$('a[title]').on('click', function(){ 
  var $link = $(this);
  var titleText = $link.attr('title');
  var $textbox = $('#myTextBox');
  $textbox.val(titleText);
});
于 2012-08-07T16:27:27.283 回答
0

我可以在一定程度上看到导致您生成此内容的逻辑,但我强烈建议您阅读文档API 参考,以便您更好地了解要做什么。

也就是说,这应该为您解决问题:

$('p').on('click', 'a', function(){
    var title = $(this).attr('title');
    $("#myTextBox").val( title );
});

一个解释,这样你就可以了解这里发生了什么:

click()我没有使用 ,而是使用on(),它代表事件而不是将它们附加到特定事件。因此,如果它检测到任何元素上的单击事件p,并且只要该元素的目标是该给定元素内的a元素p它就会执行处理程序。

然后,我们将title点击链接的属性值赋给变量title

然后我们只需将value输入的属性设置为所述标题变量,瞧。

祝你好运!

于 2012-08-07T16:35:18.230 回答