Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按类单击javascript,也会使用错误的类_Javascript_Jquery_Facebook - Fatal编程技术网

按类单击javascript,也会使用错误的类

按类单击javascript,也会使用错误的类,javascript,jquery,facebook,Javascript,Jquery,Facebook,为了调试的目的,我在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); } var links=document.querySelectorAll('a[class=“\u 5g

为了调试的目的,我在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);
}
var links=document.querySelectorAll('a[class=“\u 5glz\u 53o\u 53b]”);
对于(变量i=0;i
我需要单击的类是_5glz53o\u 53b,我需要忽略的类是_5glz53p\u 53b

我正在尝试为facebook制作一个chrome插件,其中包含各种自动任务,比如facebook插件工具包

你们知道我做错了什么吗?谢谢

陆委会要求的样本:

<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>
·

因此我认为您需要使用正则表达式选择器:

var links = document.querySelectorAll('a[class~="_5glz"][class~="_53o"][class~="_53b"]');
因此,这将选择其class属性包含单词的所有标记“_5glz”和“_53o”和“_53b”

或者,您也可以使用否定:

var links = document.querySelectorAll('a[class~="_5glz"][class~="_53b"]:not([class~="_53p"])');
取决于你需要做什么

希望这有帮助

是用:

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();
    }
}
var elems=document.getElementsByClassName(“53o”);
对于(i=0;i0&&elems[i]。偏移网络宽度>0){
控制台日志(i);
元素[i]。单击();
}
}

谢谢大家!

你知道那些类名一直在变化吗?@WizKid是的,这对我来说不是问题,我会尽量让它们保持更新。问题是它也单击了错误的类:/you有错误吗?可能是@tyteen4a03的重复,不是,因为我需要用JScript选择正确的类。我没有写任何css或任何东西。嘿,Mac,它仍然不喜欢我喜欢的任何东西,反之亦然,无论我用哪种方式尝试!嗯-好的,你使用哪种浏览器?你能粘贴一个我们可以测试的html代码片段吗?谢谢Mac,我更新了问题,添加了一个样本。谢谢谢谢-不过似乎对我有用。我将您的html示例放在一个html文档中。然后在浏览器的控制台中(在本例中,我使用了Chrome,但这不重要)粘贴
document.queryselectoral('a[class~=“\u 5glz”][class~=“\u 53o”][class~=”\u 53b“])我只得到了一个锚节点,“喜欢”锚节点…?当尝试现场直播(在一个真实的Facebook相册中)时,它也拾取了错误的“A”标记。我试着用我在XAMPP中提供的样本来做这件事,并且也成功了。我假设Facebook使“喜欢/不喜欢”链接不可见,但却将其保留在那里,因此当我重新执行脚本时,它会对已经喜欢的照片执行oposite。。。。这是一条死胡同吗/