2012-03-18 134 views
4

我試圖使用querySelectorAll()方法來抓取網頁中的鏈接,但我想忽略以「javascript:」開頭的鏈接或使用其他協議,如「itpc://」在querySelectorAll中使用冒號

有沒有什麼辦法可以將它們包含在「not()」僞選擇器中?

document.querySelectorAll("a:not([href^=javascript]):not([href^=itpc])"); //works 
document.querySelectorAll("a:not([href^=javascript:]):not([href^=itpc://])"); //doesn't work 

即使第一方法工作在當前頁面上罰款,也不能保證它會我會用它在每一頁上工作,所以我真的很想能夠檢測出結腸。

回答

11

基於the spec,把你要定位strings值將工作:

document.querySelectorAll("a:not([href^='javascript:']):not([href^='itpc://'])"); 

與當前版本的問題是,除非你使用引號的值必須符合放在identifiers的限制,他們沒有。

+0

完全錯過了。謝謝! – 2012-03-19 01:05:00