无法显示" li"使用jquery

时间:2017-02-14 13:31:56

标签: jquery

我有一组复选框,每个复选框都与" 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;
&#13;
&#13; 外部js文件:

&#13;
&#13;
$("#Afficher").click( function()
  {
      
            $.each($('input[id^="DisplayCheckbox"]:checked'), function(){            
                alert(item);
            });
            

  });
&#13;
&#13;
&#13;

1 个答案:

答案 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());
  }
});