2017-02-14 5 views
2

Я использую следующий фрагмент javascript в консоли Chrome для целей отладки.Щелчок по javascript по классу также принимает неправильный класс

var links = document.querySelectorAll('a[class="_5glz _53o _53b"]'); 
for (var i = 0; i < links.length; i++) { 
    links[i].click(); 
    console.log(i); 
} 

Класс я должен быть щелкнул является _5glz _ 53o _53b и класс мне нужно быть проигнорировано _5glz _ 53P _53b

Я пытаюсь сделать хром плагин с различными автоматизированные задачи для facebook, например, плагин Toolkit for Facebook.

Вы, ребята, знаете, что я делаю неправильно здесь? Благодарю.

Sample спросил Mac:

<div class="_5gl-" id="u_35_0"><a href="#" role="button" class="_5glz _53o _53b">Like</a><a href="#" role="button" class="_5glz _53p _53b">Unlike</a><span class="_6ib"> · </span><a class="_5glz _s4z" role="button" href="#" id="u_35_1">Comment</a><a class="_5gly _5glz" role="button" aria-label="3 likes" href="#" id="u_35_2"><table class="uiGrid _51mz _53z" cellspacing="0" cellpadding="0"><tbody><tr class="_51mx"><td class="_51m- pam _51mw"><table class="uiGrid _51mz" cellspacing="0" cellpadding="0" aria-label="3 likes"><tbody><tr class="_51mx"><td class="_51m- pas"><div class="_29qi"><i class="img sp_MVADFc4iUN7_1_5x sx_3bfd01"></i></div></td><td class="_51m- pas _51mw"><div class="_50f3">3</div></td></tr></tbody></table></td></tr></tbody></table></a></div> 
+0

Вы знаете, что имена классов меняются все время? – WizKid

+0

@WizKid да, это не проблема для меня, я постараюсь, чтобы они обновлялись. Проблема заключается в том, что он нажимает и на неправильные:/ – CDoc

+0

У вас есть ошибки? –

ответ

0

ли это с:

var elems = document.getElementsByClassName("_53o"); 
for (i = 0; i < elems.length; i++) { 
    if (elems[i].offsetWidth > 0 && elems[i].offsetHeight > 0) { 
     console.log(i); 
     elems[i].click(); 
    } 
} 

Спасибо всем!

0

Так что я считаю, вы должны будете использовать регулярные выражения селекторов:

var links = document.querySelectorAll('a[class~="_5glz"][class~="_53o"][class~="_53b"]'); 

Так что это будет выбрать все тег, атрибут класса содержит слов "_5glz" и "_53o" и "_53b"

В качестве альтернативы, вы можете также пойти с отрицанием:

var links = document.querySelectorAll('a[class~="_5glz"][class~="_53b"]:not([class~="_53p"])'); 

Зависит то, что вам нужно сделать ...

Надеется, что это помогает!

+0

Эй, Мак, Он все еще не нравится всему, что мне понравилось, и наоборот, независимо от того, в какую сторону я пытаюсь! – CDoc

+0

Хммм - хорошо, какой браузер вы используете? И вы могли бы вставить образец html-фрагмента, с которым мы могли бы проверить? Благодаря! – MacPrawn

+0

Mac, я обновил вопрос, добавил образец. Благодаря! – CDoc

Смежные вопросы