点击按钮与javascript

时间:2015-09-07 10:34:39

标签: javascript

我有这个按钮 我希望你帮我用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语句”,以便代码看看是否有任何按钮被按下,而不是再推它?

感谢您的时间。

1 个答案:

答案 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代码。