使用jQuery仅从项目中获取选定的值

时间:2016-03-25 14:22:57

标签: jquery

我有一系列div如下。

<div class="apartment-entry-container">
 a bunch of other HTML
 <input type="checkbox" value=",<?php echo get_the_ID(); ?>">
</div>

我得到了“一堆HTML”并使用以下内容从仅包含已选中复选框的div创建单个js变量。

jQuery('.apartment-entry-container:has(input:checked)').each(function() {
   content += jQuery(this).html();                      
});

我想通过获取$ post-&gt; ID来传递额外的值。所以我认为以下内容可行。

jQuery('.apartment-entry-container:has(input:checked)').each(function() {
   content += jQuery(this).html();  
   postidstring += jQuery(this).val();                      
});

我知道我在选择器的方式中遗漏了某些东西,并且我实际上试图获取容器的值,但是,我如何选择复选框的值。

2 个答案:

答案 0 :(得分:1)

jQuery(this)表示包含复选框的div,而不是复选框。尝试:

jQuery(this).find('input[type=checkbox]').val();

find函数将拉出与给定选择器匹配的所有子元素。

答案 1 :(得分:1)

问题是您正在处理容器div,而不是输入字段,因此您的jQuery(this)指的是div。因此jQuery(this).val()没有意义,即使访问this引用的复选框是正确的方法。

为了使这个工作,您需要更改代码,以便它实际选择输入而不是div: jQuery(this).find('input').val();,那么您的代码将如下所示:

jQuery('.apartment-entry-container:has(input:checked').each(function() {
   content += jQuery(this).html();  
   postidstring += jQuery(this).find('input').val();                      
});