2016-07-21 2 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() и вставьте это внешнее входное значение.

$('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

Вход является пред элементом ул, не ли. Поэтому вам нужно сначала перейти на текущую улицу.

Чтобы получить текущий родительский ул, вы можете использовать $(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

Ты очень много. вот что я искал. Ty – vulkan