6

多くのボタンを作成するユーザースクリプトに取り組んでいますが、それらすべてに独自の機能を与えることはできないようです。

私はすでに試しました

 downArrow.onclick = function (){downVote(id, username)};<br>

 downArrow.onclick = "downVote(\"" + id + "\", \"" + username + "\")";

しかし、それらは機能しません。次に、次の機能のみが機能することをどこかで読みました。

 downArrow.addEventListener('click', downVote(id, username), false);

これにより、すべてのボタンが反復の最後の ID とユーザー名のみに反対票を投じます。

それらすべてに独自のオンクリック機能を持たせたい。

for ループ全体:

var targetPosts = document.getElementsByClassName("thing message");
for (var i=0;i<targetPosts.length;i++) 
    {
    try
      {
        id = targetPosts[i].getAttribute("data-fullname");
        username = targetPosts[i].childNodes[4].childNodes[1].childNodes[0].childNodes[1].childNodes[1].childNodes[0].innerHTML;

        var upArrow=document.createElement("DIV");
        upArrow.className = "arrowUp";
        upArrow.id = id + "up";
        upArrow.addEventListener('click', function(){ upVote(id, username)} , false);

        var downArrow=document.createElement("DIV");
        downArrow.className = "arrowDown";
        downArrow.id = id + "down";
        downArrow.addEventListener('click', function(){ downVote(id, username)} , false

      targetPosts[i].childNodes[3].appendChild(upArrow);
      targetPosts[i].childNodes[3].appendChild(downArrow);
      }
    catch(err){}
    }
4

3 に答える 3