-1

wordpress用の独自のウィジェットの作成に取り組んでいます。次のコードがあります。

jQuery("body").on("change", "select[id=elementselect]", function(){  
    var val = jQuery(this).val();
    jQuery('#element1,element2').hide().filter('#element'+val).fadeIn('slow')
})

コードはうまく機能しますが、ユーザーがサイドバーに 2 つ以上のウィジェットを持っている場合、それらすべてに影響します。それらはクラスに基づいているため、ウィジェットの要素に一意の名前を付けることはできません。それで、私が現在使用している「選択」要素と同じ親を共有する要素のみをターゲットにすることは可能ですか?

HTML は次のようになります (簡略化)。

<form>
  <fieldset>
    <select id="elementselect">
      <option value="1"></option>
      <option value="2"></option>
    </select>
  </fieldset>

  <fieldset id="element1"></fieldset>

  <fieldset id="element2"></fieldset>
</form>

それとも別の解決策がありますか?

編集:私は今それを修正しました。IDをクラスに変更し、.closest()を使用しました

皆さん、ありがとうございました

4

2 に答える 2

0

あなたの質問が何であるか正確にはわかりませんが、要素の兄弟を取得するには、これを行うことができます:

var $siblings = $('#childElement').siblings();

http://api.jquery.com/siblings/

于 2012-10-03T22:20:35.650 に答える
0

多分これは役に立つでしょう...

parent()以下は、jQuery メソッド、children()、およびsiblings()がイベント でどのように機能するかを示す JS Fiddle の例です: http://jsfiddle.net/phillipkregg/GWCyL/

コードは簡単です:

$("#parent_div p").on("click", function() {
    console.log($(this).parent().children().siblings())

});

div 内の段落要素をクリックすると、その親 (div) に移動し、その子 (p タグ) が検索され、段落タグの兄弟がログに記録されます。

于 2012-10-03T22:25:47.173 に答える