jQuery如何仅查找第一次出现的情况

时间:2018-09-13 06:16:05

标签: jquery

我在页面上有一些文本输入,每个输入旁边都有一个按钮(还有<a>)。单击时,我想将最接近的文本输入定位到被单击的<a>,并将来自<a>的文本添加到最接近的文本输入区域中,直到文本输入的末尾。我下面的代码确实将<a>文本移到了上方,但是将点击的<a>文本移到了所有文本输入中。你们好吗?我可以将其限制为仅与单击<a>的实际最接近的文本输入吗?

$('#somestuff').on('click', 'a', function(){
    var aTagText = $(this).text();
    var textboxtext = $(this).parent().parent().find('input[type=text]').focus();
    textboxtext.val(textboxtext.val() + aTagText );
    textboxtext.focus();
});

谢谢!

1 个答案:

答案 0 :(得分:2)

使用:first选择器,

var textboxtext = $(this).parent().parent().find('input[type=text]:first').focus();

此外,您也可以像这样缩短代码,

$('#somestuff').on('click', 'a', function(e){
    e.preventDefault(); // use if href is specified in anchor tag, and the page is reloading
    var aTagText = $(this).text();
    $(this).parent().parent().find('input[type=text]:first')
           .focus().val(function(index,value){
              return value + aTagText; 
           });
});