-1

我正在为 wordpress 创建自己的小部件。我有以下代码:

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

该代码运行良好,但如果用户在侧边栏中有两个或更多小部件,它将影响所有小部件。由于它们基于一个类,因此我无法为小部件中的元素提供唯一名称。那么,是否可以仅针对与我当前使用的“选择”元素共享相同父元素的元素?

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 更改为 classes 并使用 .closest()

谢谢你们

4

2 回答 2

0

不完全确定您的问题是什么,但是要获得元素兄弟姐妹,您可以这样做:

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

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

于 2012-10-03T22:20:35.650 回答
0

也许这会有所帮助...

这是一个 JS Fiddle 示例,它显示了 jQuery 方法parent()children()和如何siblings()处理事件: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 回答