将多个内部子节点传递给函数

时间:2012-03-07 17:25:22

标签: javascript html html5

我需要将内部div的内容传递给函数,例如 myfun(string)。我尝试过使用

myfun((this).children[0].innerHTML)

myfun((this).children[1].innerHTML)

myfun((this).children[0].children[0].innerHTML)

但这些似乎都不起作用。我不能只传递getElementById值,因为该函数应该是通用的,因为它将由php在各种<a>元素上调用(理想情况下我认为它应该包含 this。关键字)。

enter image description here

感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

如果你不需要它跨浏览器工作,那就是:

this.getElementsByClassName('label')[0]

这将在IE 8 and below中失败。

如果您完全确定HTML / DOM结构不会改变,您可以使用:

this.nextSibling.children[0];

但是,在将textNode视为childNode s

的浏览器中,这可能存在问题

答案 1 :(得分:1)

对象this将应用于它调用的<a>标记。您需要先调用父div,然后相应地选择子项。

尝试使用this.parent.children[1].children[0].innerHTML

答案 2 :(得分:1)

在你的函数中,“this”指的是链接,不能使用。

更清洁的解决方案是让myfunc知道它将接收包含文本的对象

的javascript:

myfunc(obj){
   alert(obj.childNodes[0].nodeValue);
}

HTML

   <a href="#" onclick="myfunc(document.getElementByID('target'));return false;">click</a>
   <div id="target">target contents</div>

答案 3 :(得分:0)

尝试 this.parent.children[1].children[0].innerHTML

但是你应该使用动态ID代替这个混乱。