jquery获取数组的选择选项

我有点坚持一个 – 大概很容易解决问题.

我想创建将用于网站上所有选定元素的代码.

根据分配给“选项”的“标签”属性,我想隐藏所有其他“div”元素,这些元素的类与此特定“选择”菜单中“选项”的其他“标签”值相同.

让我来证明:

 <select class="sel_depend" id="reg_where_heard" name="where_heard">
    <option value="">Select one…</option>
    <option value="1">Google</option>
    <option value="2">Yahoo</option>
    <option value="3" label="where_heard_magazine">Magazine</option>
    <option value="4" label="where_heard_other">Other</option>
</select>

<div class="where_heard_magazine dn"><input type="text" name="magazine" id="magazine" value="" /></div>
<div class="where_heard_other dn"><input type="text" name="other" id="other" value="" /></div>

现在 – 菜单下div中的“dn”类只分配了“display:none”.

根据所选的选项 – 如果它的值为3 – 我希望div与类显示相同的类 – 然后如果我选择值为4的选项 – 所有其他div(其中类名将从所有选项中填充)这个select元素)应该hide()并且只选择show().

我不太确定如何将特定“select”元素的所有“选项”元素放到数组中.
然后大概我可以使用each()语句遍历它并找出它们是否有“label”,如果是这样的话 – 用与其值匹配的类隐藏元素.

然后在循环之后,我可以显示具有与所选“选项”的“label”参数的值匹配的类的元素.

我希望这是有道理的.

知道怎么做到这一点?

非常感谢.

最佳答案 给出与特定选择相关的所有div,选择一个作为该元素名称的类.然后你可以这样做:

$('.sel_depend').change(function(){
    var class = $(this).attr('name');
    $('.' + class).hide();
    var divToShowClass = $(this).find(':selected').attr('label');
    $('.' + divtoShowClass).show();

});
点赞