【发布时间】:2014-02-25 17:16:11
【问题描述】:
我有一些 div 在创建时会动态添加“fund-id”属性,因为我的页面上可能有大约 50 个。我正在尝试根据div中的fund-id和标签id动态隐藏和显示该div中的元素 HTML 将是;
<div class="qtyDD" id="divqtyDD" style="display: none;" fund-id="1">
<a href="#" onclick="javascript:changeQtyType('D');"><label id="qtyTypeD" class="lblqtyDD" value="D">Dollars</label></a>
<a href="#" onclick="javascript:changeQtyType('Shrs');"><label id="qtyTypeShrs" class="lblqtyDD" value="Shrs">Shares</label></a>
<a href="#" onclick="javascript:changeQtyType('Full');"><label id="qtyTypeFull" class="lblqtyDD" value="Full">Full</label></a>
<a href="#" onclick="javascript:changeQtyType('Net');"><label id="qtyTypeNet" class="lblqtyDD" value="Net">Net Redemptions</label></a>
</div>
取决于我想要隐藏()的复选框选择;最后 3 个元素或全部显示。类似的东西;
var fundID = fundID (taken from the function call, this is working fine)
if(this.checked){
$('#divqtyDD[fund-id="' + fundID + '"]').next('#qtyTypeShrs').hide();
}else{
$('#divqtyDD[fund-id="' + fundID + '"]').next('#qtyTypeShrs').show();
}
标签在被下一个功能引用时不会隐藏。任何帮助表示赞赏。
【问题讨论】:
-
元素
ids 在页面上必须是唯一的。改用类,看看它对你有什么好处。 -
您还需要使用
.find()而不是.next()。请参阅 jquery 文档了解每个函数的作用。 -
嘿,Jason,这是一个很好的观点,在发布之前我实际上是在搞乱类名,我没有编辑/更新它。我会尝试对元素使用 find() 看看是否有效
标签: jquery label show-hide next