使用jQuery获取HTML元素

时间:2010-08-12 02:17:03

标签: jquery css-selectors

我有一些ID为“div1”,“div2”......“divx”的DIV。我想对它们进行操作。有没有办法获得元素ID .contains“div”。还有其他想法吗?

3 个答案:

答案 0 :(得分:11)

您可以使用starts with selector

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

以上内容将抓取所有id属性以字母div开头的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.

答案 1 :(得分:7)

你可以使用它(我还没有测试过):

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

这将使所有div元素的id以“div”开头。

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

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

答案 2 :(得分:2)

使用ID如div1,div2,div3是一种不好的做法。这就像命名你的类“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>