2016-07-21 20 views
1

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> 

我想:點擊李複製文本()或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(); 
}); 

我能得到的價值,但 '輸入' 不打印

jsfiddle

回答

2

輸入是UL的上一個元素,而不是李。所以你需要首先遍歷當前的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

+1

泰非常多。這就是我一直在尋找的。泰 – vulkan

相關問題