我有两个复选框组,我最终需要其中一个影响另一个的输出。我已经参考了这个问题/答案,它似乎让我朝着一个大的方向前进,但这里需要一些regex
,我不太熟悉。
下面是第一个复选框组:
<div class="tabs-panel" id="wood_types-all" style="display: block;">
<input type="hidden" value="0" name="tax_input[wood_types][]">
<ul class="list:wood_types categorychecklist form-no-clear" id="wood_typeschecklist">
<li class="popular-category" id="wood_types-33"><label class="selectit"><input type="checkbox" id="in-wood_types-33" name="tax_input[wood_types][]" value="33"> Clear Pine</label></li>
<li class="popular-category" id="wood_types-35"><label class="selectit"><input type="checkbox" checked="checked" id="in-wood_types-35" name="tax_input[wood_types][]" value="35"> Oak</label></li>
<li class="popular-category" id="wood_types-34"><label class="selectit"><input type="checkbox" checked="checked" id="in-wood_types-34" name="tax_input[wood_types][]" value="34"> Poplar</label></li>
<li class="popular-category" id="wood_types-36"><label class="selectit"><input type="checkbox" id="in-wood_types-36" name="tax_input[wood_types][]" value="36"> PVC</label></li>
</ul>
</div>
我尝试提取和比较的值是(例如),33
id="wood_types-33"
另一个复选框组是:
<div class="field field-categories" id="acf-mp_wood_species_availability"><label for="fields[field_4f7f4709cdb16]" class="field_label">Wood Species Availability</label>
<ul>
<li>
<input type="checkbox" class="33" value="clear-pine" name="fields[field_4f7f4709cdb16][]" id="fields[field_4f7f4709cdb16][]"> Clear Pine
</li>
<li>
<input type="checkbox" class="34" value="poplar" name="fields[field_4f7f4709cdb16][]" id="fields[field_4f7f4709cdb16][]"> Poplar
</li>
<li>
<input type="checkbox" checked="" class="35" value="oak" name="fields[field_4f7f4709cdb16][]" id="fields[field_4f7f4709cdb16][]"> Oak
</li>
<li>
<input type="checkbox" class="36" value="pvc" name="fields[field_4f7f4709cdb16][]" id="fields[field_4f7f4709cdb16][]"> PVC
</li>
</ul>
</div>
因此,这两个复选框组确实共享一个共同的属性id="wood_types-33"
和class="33"
。
我最终要做的是默认隐藏所有第二个复选框(我知道可以这样做):
$('#acf-mp_wood_species_availability li').hide();
如果选中了第一个复选框组中的匹配项,则可以选择第二个组(未选择,只需show()
)。我还试图让它在页面加载时"查找"这些匹配项(因此,如果有人回来编辑该项目,则选择可用),并且如果取消选择第一个复选框组中的项目(被选中后),那么第二个复选框组项目不仅应该消失,而且还应该取消选中(这可以通过click()
完成)。我已经有一段时间了,还没有走得很远,所以任何帮助将不胜感激。谢谢!
入门 jFiddle: http://jsfiddle.net/JfwWv/
我看到了这是jQuery中正则表达式的备忘单-但是我找不到match()
函数的任何参考-->我只是想错了-这是参数$()
正常的选择器吗?
var numberToCompare = "#wood_types-33".split("-")[1];
基本上,对字符串调用 .split()
会返回在指定字符上拆分的该字符串的数组。在这种情况下,"wood_types-33".split("-")
返回一个包含两个索引的数组,即"-"之前和之后的索引。我们需要之后的东西;因此,最后的[1]
。
这样做会更快:
var myStr = "#wood_types-33";
myStr = myStr.substr(myStr.lastIndexOf("-")+1);
但是有点难以解释。它只是工作。:p