如何选择以前的类元素

时间:2016-07-21 08:01:55

标签: javascript jquery selector

html代码

<tr>
 <td> 
   <input type='text' name='bbc[]'> <!-- array name input -->
   <ul class='popup'>
     <li> one </li>
     <li> two </li>
     <li> three</li> <!-- I want click copy value "three" and paste input -->
   </ul>
 </td>
</tr>
<tr>
 <td> 
   <input type='text' name='bbc[]'>
   <ul class='popup'>
     <li> one </li>
     <li> two </li>
     <li> three</li>
   </ul>
 </td>
</tr>

我想:在li copy text()或html()值中单击ul并粘贴此外部输入值。

$('body .popup').hide();
    $('body').on('keyup','.name',function(){
        $(this).next().slideDown();
        $('body .popup li').click(function(){
            $(this).prev().css({background:'red'})
        });
    });
})

$(window).click(function(){
        $('.popup').slideUp(200);
});
$('body').on('click','.popup',function(e){
  e.stopPropagation();
});

我可以获得价值但是输入&#39;不要打印

jsfiddle

1 个答案:

答案 0 :(得分:2)

输入是ul的prev元素,而不是li。所以你需要先遍历当前的ul。

要获取当前的父级ul,您可以使用$(this).closest("ul")

然后你的最终代码将是,

$(function() {
  $('body .popup').hide();
  $('body').on('keyup', '.name', function() {
    $(this).next().slideDown();
    $('body .popup li').click(function() {
      $(this).closest("ul").prev().val($(this).text())
    });
  });
})

$(window).click(function() {
  $('.popup').slideUp(200);
});
$('body').on('click', '.popup', function(e) {
  e.stopPropagation();
})

Fiddle