【问题标题】:Get HTML element using jQuery使用 jQuery 获取 HTML 元素
【发布时间】:2010-09-17 06:48:59
【问题描述】:

我有一些 ID 为“div1”、“div2”...“divx”的 DIV。我想对它们进行操作。有什么方法可以获取元素 ID .contains “div”。还有什么想法吗?

【问题讨论】:

    标签: jquery css-selectors


    【解决方案1】:

    您可以使用starts with selector

    $("div[id^='div']")
    

    上面将抓取所有具有以字母div 开头的id 属性的div。

    jsFiddle example that makes all divs with id div... invisible.


    如果您想匹配 div 后跟数字而不是 div 后跟其他内容,以下是处理棘手情况的方法。所以div1 会匹配,但divx 不会。

    在这种情况下,我们将filter() 与函数一起使用。当我们想要匹配时,该函数应该返回 true,而当我们不想要匹配时,该函数应该返回 false。 match() 和正则表达式对此非常有用(您可以使用 [0-9] 表示正则表达式中的数字或更简单的 [\d]):

    $("div").filter(function() {
        return $(this).attr("id").match(/^div[\d]+$/)
    })
    

    attr()返回指定属性的值,在本例中为id

    jsFiddle example that makes all div followed by number disappear, but not div followed by other things.

    【讨论】:

    • 虽然彼得的出色答案是完全正确的,但 最好 要做的事情是在所有这些 div 中添加一个“mydivs”类或其他任何东西(在 HTML 中),这样您就可以按类别选择它们。这就是类存在的原因,用于对类似项目进行分组。 :)
    【解决方案2】:

    你可以使用这个(虽然我还没有测试过):

    jQuery("div[id^='div']")
    

    这将获取所有div 元素以“div”开头的id

    如果您想要所有具有id 包含“div”的div 元素,那么您可以使用这个:

    jQuery("div[id*='div']")
    

    【讨论】:

      【解决方案3】:

      使用 div1、div2、div3 之类的 ID 是一种不好的做法。这就像将您的类命名为“black-bold-12px”,然后将这些样式分配给该类。它错过了语义上的重点。

      这样做的正确方法是为所有这些都使用一个类。

      元素可以属于多个类,使用空格作为分隔符:

      <div class="something usethis">...</div>
      <div class="usethis something_else">...</div>
      <div class="usethis">...</div>
      <div class="something anotherclass usethis" id="someId">...</div>
      
      <script>
        $(".usethis").html("New contents for all of them!");
      </script>
      

      【讨论】:

      • 其他答案回答了这个问题,但这是正确的答案
      • 如果您有一系列帖子,ID 为 post-1post-23 等,其中数字是唯一的通用帖子标识符似乎完全合法且语义信息丰富......但是,是的,它是如果可能的话,使用经过深思熟虑的课程当然更容易。 ---- 然而,说到语义结构良好的页面,外部 Javascript 优于使用
      • @Peter 是的,如果我需要识别它们中的每一个,这就是我所做的。无论如何,如果您考虑一下,拥有像“post-1”这样的 ID 与像“div-1”这样的 havig ID 是不一样的......不过,当将它们称为一个组时,最好使用一个类。跨度>
      • 为了清楚起见,我完全同意你的观点,你的观点很重要。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      • 2014-11-07
      相关资源
      最近更新 更多