2009-08-15 1 views
1

Я пытаюсь найти элемент с помощью JQuery, но он не работает .. Я узнал, что этот вид селектора не может быть сделано в Greasemonkey:Неужели Greasemonkey не способен использовать полную мощность jQuery?

($("#app7019261521_hover_container > [id^=app7019261521_the_coin]")) 

Пожалуйста, помогите мне перевести это в сырье Javascript. Этот вид селектора - хардкор, который можно сделать в Javascript. Пожалуйста, помогите мне гуру Javascript!

+1

Это работает для меня в GreaseMonkey. – James

ответ

2

Это должно сделать это, и теперь я помню, почему я начал использовать JQuery:

var children = document.getElementById('app7019261521_hover_container').childNodes; 
var ids = []; //to store the IDs of all matching elements 
for(var i = 0; i < children.length; i++) 
{ 
    //indexOf returns zero is subject starts with passed string 
    if(children.item(i).id.indexOf('app7019261521_the_coin') == 0) 
    { 
     alert('Got One!'); 
     ids.push(children.item(i).id); 
    } 
} 
1

Поскольку вы ориентируетесь непосредственно к Firefox, вы можете захотеть взглянуть на Selectors API реализованных на Firefox 3.5.

Проверьте функцию document.querySelectorAll:

var elements = document.querySelectorAll("#app7019261521_hover_container > [id^=app7019261521_the_coin]") 
+0

Я был бы удивлен, если это сработает. Если jQuery не работает, то это не должно ни после, ни в работоспособных браузерах, jQuery (Sizzle) использует document.querySelectorAll ... – James