2012-04-24 5 views
0

2つのチェックボックスグループがあり、最終的にそれらのうちの1つを他のグループの出力に適用する必要があります。私は一般的な方向に私を得たように思われるthisの質問/回答を参照しましたが、ここにはregexが必要です。ここjQueryチェックボックス同期をクリックします(正規表現が必要です)

は、最初のチェックボックス群である:

<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> 

Iを抽出して比較しようとしている値である(例えば)、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][]">&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"を共有します。

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

と選択されていない(選択することが可能な第2のグループを持っている:

は私が最終的にやろうとしていることは(私が行うことができます知っている)、デフォルトにより、第2のチェックボックスのすべてを隠しています、ちょうどshow())を選択します。私はまた、ページロード時にこれらのマッチを「見て」みるようにしています(つまり、誰かがアイテムを編集するために戻ってきたら、選択肢が利用可能になります)、そして最初のチェックボックスグループのアイテムが選択解除された2番目のチェックボックスグループ項目は消えるだけでなく、チェックを外す必要があります(これはclick()で行うことができます)。私はこの間ずっとずっと遠くにいないので、どんな助けも本当に感謝しています。ありがとう!

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

私はjQueryのでは正規表現のためのチートシートであるthisを見た - しかし、私はmatch()機能のいずれかの参照を見つけることができません - >私はちょうどその間違ったを考えています - ということです通常のセレクタ$()引数?

答えて

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

+0

@Elliotありがとうございます - この少し離れて、http://jsfiddle.net/JfwWv/1/を取ろうとしましたが、私はこれに正しく近づいているとは思わない。 – Zach

+0

私はそれを見てみましょう、私は少しあなたに戻ってきます。私は時間がないので、何も約束することはできませんが、... –

+0

ありがとう@Elliotはそれを感謝します – Zach

関連する問題