0

我有两个复选框组,我最终需要让其中一个影响另一个的输出。我已经引用了这个问题/答案,这似乎让我有了一个大致的方向,但这里有一些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>

我试图提取和比较的值是(例如),33id="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][]">&nbsp;Clear Pine
        </li>
        <li>
            <input type="checkbox" class="34" value="poplar" name="fields[field_4f7f4709cdb16][]" id="fields[field_4f7f4709cdb16][]">&nbsp;Poplar
        </li>
        <li>
            <input type="checkbox" checked="" class="35" value="oak" name="fields[field_4f7f4709cdb16][]" id="fields[field_4f7f4709cdb16][]">&nbsp;Oak
        </li>
        <li>
            <input type="checkbox" class="36" value="pvc" name="fields[field_4f7f4709cdb16][]" id="fields[field_4f7f4709cdb16][]">&nbsp;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()函数的任何引用 -> 我只是想错了 - 这是正常的选择器$()参数吗?

4

1 回答 1

1
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

于 2012-04-24T15:27:29.857 回答