两个按钮具有相同的类但不同的标题,点击与JavaScript

时间:2015-09-07 10:58:21

标签: javascript

根据上一个问题 Previous question

我有这个按钮 我希望你帮我用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>

@dikkini用这段代码构建了一个解决方案

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;
}

但现在我有一个额外的按钮具有相同的CLASS但不同的标题。 当我执行2次javascript代码时,第二个按钮也被按下。 但我不希望它被推动。无论我多少次执行dikkini建议的代码。

此按钮的代码是..

<a class="UFILikeLink" data-ft="{"tn":">"}" href="#" role="button" title="Like this comment" data-reactid=".1h.1:4:1:$comment535881486576364_535889293242250/=10.0.$right.0.$left.0.3.$likeToggle/=10">Like</a>

你可以看到它有一个标题。有人可以帮我做一个if语句所以如果它有这个标题不推动吗? 非常感谢!

2 个答案:

答案 0 :(得分:3)

要检查标题,您可以使用:

var el = document.getElementsByClassName('UFILikeLink'); 
for (var i=0; i<el.length; i++) {
   var ele = el[i];
   if (!hasClass(ele, "UFILinkBright") && ele.getAttribute('title').indexOf('Like this comment') == -1) {

     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表示aria-label attribtue代码。

答案 1 :(得分:0)

Array.from(document.querySelectorAll('._4l5  .UFILikeLink')).forEach(btn => {
        btn.click();

});

这是您正在寻找的代码。它使用类UFILikeLink命中按钮,该类位于具有类_4l5的div中。而且您不必担心具有相同类别的其他按钮。希望它有所帮助。