【问题标题】:Handling multiple IDs in jQuery在 jQuery 中处理多个 ID
【发布时间】:2011-06-03 23:55:13
【问题描述】:

可以像在代码中一样处理多个 id 吗?

<script>
$("#segement1, #segement2, #segement3").hide()
</script>

<div id="segement1"/>
<div id="segement2"/>
<div id="segement3"/>

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:

    是的,#id selectors 结合 multiple selector(逗号)在 jQuery 和 CSS 中都完全有效。

    但是,对于您的示例,由于 &lt;script&gt; 出现在 元素之前,因此您需要一个 document.ready 处理程序,因此它会等到元素在 DOM 中才去寻找它们,例如这个:

    <script>
      $(function() {
        $("#segement1,#segement2,#segement3").hide()
      });
    </script>
    
    <div id="segement1"></div>
    <div id="segement2"></div>
    <div id="segement3"></div>
    

    【讨论】:

    • 如果 div 没有内容我们可以写
      对吧?
    • @Rajeev - 不,它不是一个自动关闭的元素 :)
    • 如果这些 div 是自动生成的 #segment{i} 并且数量未定义,该怎么办?
    • @Reveclaire 如果必须,请使用 "starts with" attribute selector,如下所示:$("[id^=segement]").hide()(将其范围扩大到任何父母都不会是一个坏主意)。
    【解决方案2】:

    解决方案:

    关于你的第二个问题

    var elem1 = $('#elem1'),
        elem2 = $('#elem2'),
        elem3 = $('#elem3');
    

    您可以使用变量作为选择器的替换。

    elem1.css({'display':'none'}); //会工作

    在以下情况下,选择器已经存储在变量中。

    $(elem1,elem2,elem3).css({'display':'none'}); // 不会工作

    【讨论】:

      猜你喜欢
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多