我有这个按钮 我希望你帮我用javascript代码点击它。 这是按钮的类。
点击
<a class="UFILikeLink" href="#" role="button" aria-label="Like this" aria-live="polite" data-ft="{"tn":">"}" data-reactid=".19l">
<i class="UFILikeLinkIcon img sp_nbjSKc2Bl8j sx_49c162" data-reactid=".19l.0"></i>
<span data-reactid=".19l.1">Like</span></a>
点击
<a class="UFILikeLink UFILinkBright" href="#" role="button" aria-label="Unlike this" aria-live="polite" data-ft="{"tn":">"}" data-reactid=".19l">
<i class="UFILikeLinkIcon img sp_nbjSKc2Bl8j sx_df3f80" data-reactid=".19l.0">
</i><span data-reactid=".19l.1">Like</span></a>
这是我试图让它工作但我得到错误的JavaScript代码
var el = document.getElementsByClassName('UFILikeLink');
for (var i=0; i<el.length; i++) {
var ele = el[i];
if (ele.parentNode.className.indexOf('Unlike this') == -1) {
ele.click();
}
}
但是当我再次尝试代码时,它正在按下已按下的按钮。 你能帮我找到正确的“if语句”,以便代码看看是否有任何按钮被按下,而不是再推它?
感谢您的时间。
答案 0 :(得分:3)
Clicked Button包含课程UILinkBright
。所以,我们可以检查这个类的存在。如果element没有这个类,那么我们将触发click。
var el = document.getElementsByClassName('UFILikeLink');
for (var i=0; i<el.length; i++) {
var ele = el[i];
if (!hasClass(ele, "UFILinkBright")) {
ele.click();
}
}
function hasClass(element, cls) {
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
这适用于aria-label
属性代码:
var el = document.getElementsByClassName('UFILikeLink');
for (var i=0; i<el.length; i++) {
var ele = el[i];
if (ele.getAttribute('aria-label').indexOf('Unlike this') == -1) {
ele.click();
}
}
JSFiddel
适用于咏叹调的attribtue代码。