2017-02-08 7 views
0

Я использую функцию карты, чтобы вернуть текст диапазона после щелчка. Он не возвращает результат.Карта, возвращающая текст для пролета рядом с флажками jquery

<label class="hello"> 
    <input type="checkbox" name="chk" value="1"> 
    <img src="test1.png"> 
    <span>test-1</span> 
</label> 
<label class="hello"> 
    <input type="checkbox" name="chk" value="2" checked> 
    <img src="test2.png">  
    <span>test-2</span> 
</label> 
<label class="hello"> 
    <input type="checkbox" name="chk" value="3" checked> 
    <img src="test3.png"> 
    <span>test-3</span> 
</label> 

checked = []; 

$('.hello').change(function() { 
    checked = $('.hello input:checked').map(
     function() { return $(this).next('span').text(); }).get(); 
    alert(checked); 
}); 

alert возвращает ',,'.

+0

При отладке таких проблем попробуйте разделить код на несколько строк. Переменные - ваш друг. Вы можете видеть в отладчике именно то, что $ (this) .next ('span'), если вы установите его равным переменной и вызовите .text() для этой переменной. – Cass

ответ

0

Следующий jQuery возвращает «сразу после родного брата», если он соответствует. Элемент, который сразу же следует за вашим флажком, не является диапазоном, это тег img. Функция .siblings() должна работать.

+0

Спасибо Чип. Да, он работает. – Gene9y