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();

标签在被下一个功能引用时不会隐藏。任何帮助表示赞赏。

【问题讨论】:

元素ids 在页面上必须是唯一的。改用类,看看它对你有什么好处。 您还需要使用.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中的标签的主要内容,如果未能解决你的问题,请参考以下文章

div隐藏和显示

Javascript:使用切换按钮隐藏和显示 div 标签

前端使用JS和JQuery显示隐藏标签

jQuery按等级(desc)排序并根据值隐藏div

关于div标签的显示与隐藏

如何用jquery来控制div的显示与隐藏