2011-05-19 71 views
1

可以使用document.getElementById以及正则表达式吗?document.getElementById + regex

例如一个页上的ID将产品-1而另一页的这将是产物-3。 (不要AKS我为什么,但不能明显改变。)

我想要做的是运行getElementById寻找的ID 产品-X其中X是1或3

目前,我有这样的事情:

var _container = document.getElementById("product-1") || document.getElementById("product-3"); 

其作品 - 但我不知道是否有这样做的更好的办法?

在此先感谢

+1

[jQuery选择](http://api.jquery.com/category/selectors/)的_awesome_此借来的。 – pixelbobby 2011-05-19 16:27:12

+2

将jQuery从jQuery中剥离出来,并获得jizz的选择器引擎Sizzle:http://sizzlejs.com/ – Blender 2011-05-19 16:28:54

+0

+1但是如果你打算像这样做_cool stuff_,那么jQuery可能也会帮助其他领域。多用途FTW。奥卡姆的剃刀@Blender。 – pixelbobby 2011-05-19 16:30:57

回答

6

jQuery selectors真棒这一点。

一个很好的例子是,像这样$("*[id^=product]")

+0

嗯......所以我觉得那里有一个复选标记? :] – pixelbobby 2011-05-19 16:44:51

0

的“starts with”选择,所以你不能改变的元素的ID,但你能添加一个类? 如果添加类产品所有的产品,你可以让他们 全部由

document.getElementsByClassName("product") 

,并采取第一个

+1

虽然这很好干净,但它与IE5.5,6,7和8不兼容(http://www.quirksmode.org/dom/w3c_core.html#t11)。相反,我会建议尝试这个=> http://pastie.org/2574711 – yekta 2011-09-22 16:44:38

1

没错。 document.querySelectorAll在这里似乎很好。

document.querySelectorAll('[id^=product]') 

StackOverFlow

MDN链接here.