jQuery标题属性到文本框

时间:2012-08-07 16:25:17

标签: jquery

我是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());
});

非常感谢任何帮助。谢谢!

2 个答案:

答案 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)

我可以看到导致你产生这种情况的逻辑,但我强烈建议您阅读docsAPI Reference,以便更好地了解该怎么做。

那就是说,这应该可以帮到你:

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

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

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

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

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

祝你好运!