JQuery按ID隐藏Div中的标签
Posted
技术标签:
【中文标题】JQuery按ID隐藏Div中的标签【英文标题】:JQuery Hide Label in a Div by ID 【发布时间】: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();
标签在被下一个功能引用时不会隐藏。任何帮助表示赞赏。
【问题讨论】:
元素id
s 在页面上必须是唯一的。改用类,看看它对你有什么好处。
您还需要使用.find()
而不是.next()
。请参阅 jquery 文档了解每个函数的作用。
嘿,Jason,这是一个很好的观点,在发布之前我实际上是在搞乱类名,我没有编辑/更新它。我会尝试对元素使用 find() 看看是否有效
【参考方案1】:
试试
$("#divqtyDD").children("#qtyTypeD").hide();
也可以直接使用
$("#qtyTypeD").hide();
因为 id 是唯一的。
【讨论】:
因为他们是 id 的,这不是有点多余吗?$("#qtyTypeD").hide();
做同样的事情。
我不直接引用它们并且我通过父 div 和 fund-id 进行引用的唯一原因是因为我可以拥有 10 个完全相同的 div,fund-id=1, fund -id=2,所以我只想在 中使用适当的fund-id 引用#qtyTypeD
【参考方案2】:
$("#divqtyDD").children().slice(1)[this.checked ? 'hide' : 'show']();
【讨论】:
以上是关于JQuery按ID隐藏Div中的标签的主要内容,如果未能解决你的问题,请参考以下文章