0

2つのチェックボックスグループがあり、そのうちの1つがもう1つの出力に影響を与えるようにする必要があります。私はこの質問/回答を参照しましたが、これは私を一般的な方向に導いたようですが、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>

したがって、2つのチェックボックスグループは共通の属性id="wood_types-33"とを共有しますclass="33"

私が最終的にやろうとしているのは、デフォルトで2番目のチェックボックスをすべて非表示にすることです(これはで実行できることがわかっています)。

$('#acf-mp_wood_species_availability li').hide();

show()最初のチェックボックスグループから一致するアイテムが選択されている場合は、2番目のグループを選択できるようにします(選択されていないだけです)。また、ページの読み込み時にこれらの一致を「検索」して(誰かがアイテムを編集するために戻ってきた場合、選択が可能になります)、最初のチェックボックスグループのアイテムが選択解除された場合(選択された後)にしようとしています。 、次に、2番目のチェックボックスグループ項目が消えるだけでなく、チェックを外す必要があります(これはで実行できますclick())。私はしばらくこれに参加していて、それほど遠くまで来ていないので、どんな助けでも本当にありがたいです。ありがとう!

スターターjFiddle: http: //jsfiddle.net/JfwWv/

これはjQueryの正規表現のチートシートですが、関数の参照が見つかりませんmatch()->間違っていると思っているだけです-それは通常のセレクター$()引数ですか?

4

1 に答える 1

1
var numberToCompare = "#wood_types-33".split("-")[1];

基本的に、文字列を呼び出す.split()と、指定した文字で分割されたその文字列の配列が返されます。この場合、"wood_types-33".split("-")「-」の前と後の2つのインデックスを持つ配列を返します。後に続くものが必要です。したがって、[1]最後に。

これを行うとより速くなります:

var myStr = "#wood_types-33";
myStr = myStr.substr(myStr.lastIndexOf("-")+1);

しかし、説明するのは少し難しいです。それはうまくいきます。:p

于 2012-04-24T15:27:29.857 に答える