-1

我希望在这里发布很多具体的代码不是问题,但我认为如果每个人都能看到它会更好地解释它,所以我将给你我的代码然后我会解释我的问题。

我的代码:

function addBeGoneLinks () {
     var beGoneClassElems;
     var beGoneSpan;
     var beGoneLink;
     var beGonePrintSafe;
     var spacesSpan;
     //var middotSpan = document.createElement ('span');

     var interactionContainer = document.getElementsByClassName('feedItemInteractionContainer');

     for (var i=0; i<children.length; i++)
     {
         beGonePrintSafe = false;

         beGoneClassElems = children[i].getElementsByClassName('beGone')

         beGonePrintSafe = true;


         if (beGoneClassElems.length == 0)
         {
             beGoneLink = document.createElement('a');
             beGoneLink.href = 'javascript:void(0);';
             beGoneLink.appendChild(document.createTextNode('Be Gone'));
             beGoneLink.className = 'beGone';
             beGoneLink.id = 'beGoneLink' + i.toString();
             beGoneLink.addEventListener ("click", function() {beGone();}, false);//This line!
             beGoneLink.align = 'right';

             spacesSpan = document.createElement('span');
             spacesSpan.innerHTML = ' - ';

             if (interactionContainer[i] != undefined)
             {
                 interactionContainer[i].appendChild(spacesSpan);
                 interactionContainer[i].appendChild(beGoneLink);
             }
         }
     }
}

在这里,我有一个来自我正在处理的 Greasemonkey 脚本的函数。当点击其中一个链接时,我的目标是让它调用该函数,该函数beGone()将除其他外删除几个父级的整个元素,从而删除他们的兄弟姐妹、他们的父母和他们父母的兄弟姐妹,以及一两个之后的水平。

我的想法只是获取被按下的链接的 id 并将其传递给,beGone()这样我就可以让父母使用它的 id,但我不知道该怎么做。我可以通过它调用的函数传递链接的 id 吗?如果没有,还有其他方法可以做到这一点吗?

我不确定我是否遗漏了一些非常简单的解决方案,但我一直无法在网络上找到一个根深蒂固的解决方案,尤其是因为我不确定如何搜索这个特定问题。

4

1 回答 1

1

尝试这个:

beGoneLink.addEventListener("click", beGone, false);

beGone = function (evt) {
    evt.target; // evt.target refers to the clicked element.
       ...
}


然后,您可以使用evt.target.id,evt.target.parentNode等。

于 2013-02-08T07:48:26.317 回答