2011-05-19 72 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.