2017-02-08 24 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); 
}); 

警報返回',,'。

+0

當調試這樣的問題時,嘗試將代碼分成更多行。變量是你的朋友。如果將其設置爲等於某個變量並在該變量上調用.text(),則可以在調試器中準確查看$(this).next('span')是什麼。 – Cass

回答

0

如果jQuery的下一個匹配,jQuery的下一個返回'緊隨其後'。緊跟在複選框後面的元素不是跨度,它是img標記。 .siblings()函數應該可以工作。

+0

謝謝芯片。是的,它正在工作。 – Gene9y

相關問題