我需要将内部div的内容传递给函数,例如 myfun(string)。我尝试过使用
myfun((this).children[0].innerHTML)
myfun((this).children[1].innerHTML)
myfun((this).children[0].children[0].innerHTML)
但这些似乎都不起作用。我不能只传递getElementById值,因为该函数应该是通用的,因为它将由php在各种<a>
元素上调用(理想情况下我认为它应该包含 this。关键字)。
感谢您的帮助。
答案 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代替这个混乱。