我有一组复选框,每个复选框都与" li"相关联。包含查询结果的标签,我也有按钮,所以我想检查多个复选框,然后点击按钮后,我想显示每个选中的复选框的li标签文本。当我单击一个复选框时,我已成功显示此数据,但当我检查多个时,它始终显示最后一个li文本。从下面的代码中,您会注意到" item"变量崩溃旧文本,只显示最后一个" li"文本,如何为每个复选框保留两个li文本。我希望你能解决我的问题。任何帮助表示赞赏。
以下是一段代码:
php文件:
<script type="text/javascript">
$(document).ready(function(){
$('input[id^="DisplayCheckbox"]').on('click',function()
{
if($('input[id^="DisplayCheckbox"]:checked').length>=1)
{
parent = $(this).val();
item = $(this).parents('#'parent).find("li.ListeGeom").text();
alert(item);
}else
alert(1);
});
});
</script>
&#13;
$("#Afficher").click( function()
{
$.each($('input[id^="DisplayCheckbox"]:checked'), function(){
alert(item);
});
});
&#13;
答案 0 :(得分:0)
如果没有看到随附的HTML结构,将会涉及到一些猜测。但是我想你几乎就在那里,你只是使用了错误的.each版本。您需要$(selector).each(...
语法 - 这将迭代jQuery实例中的匹配元素,而泛型$.each
将迭代传统的数组或对象。
$.('input[id^="DisplayCheckbox"]:checked').each(function(index, element){
alert(element.id);
});
有关详细信息,请参阅https://api.jquery.com/each/
要查找文本,需要做更多的工作。再一次,我无法看到HTML,但您找到它们的方式看起来既复杂又脆弱。您最好使用类或数据属性将它们相互关联,如下所示:
值为1的复选框:
<input id="DisplayCheckbox" value="1" type="checkbox"/>
关联的li,最后有一个类,包括1:
<li class="querytext1">Content</li>
然后找到相关文本是微不足道的:
$.('input[id^="DisplayCheckbox"]:checked').each(function(index, element){
alert($(".querytext" + element.value).text());
});
然后,您可以在每个复选框的点击事件中执行相同操作:
$('input[id^="DisplayCheckbox"]').on('click', function() {
if ($(this).prop("checked") == true) {
alert($(".querytext" + this.value).text());
}
});