【问题标题】:JQuery Hide Label in a Div by IDJQuery按ID隐藏Div中的标签
【发布时间】: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


【解决方案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']();

【讨论】:

    猜你喜欢
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多