我有一些ID为“div1”,“div2”......“divx”的DIV。我想对它们进行操作。有没有办法获得元素ID .contains“div”。还有其他想法吗?
答案 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
。
答案 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>