2017-02-08 25 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

相关问题