<div id="block_msg" style="width:250px;border: solid 1px red;margin: 15px">
<div id="text_msg1">111текст111</div>
<input type="submit" onclick="clickon(**<<<HERE I WANT SEE DIV ID TEXT_MSG1>>>**)" value="Добавить">
</div>
我如何获得id =&#34; text_msg1&#34;并把它放入onclick。怎么样?谢谢!
答案 0 :(得分:5)
this
是当前对象,您可以查看父级并找到div。这个解决方案很糟糕,因为更改布局意味着它会破坏。
onclick="clickon(this)"
和
function clickon(btn) {
var wrappingDiv = btn.parentNode;
var childrenDivs = wrappingDiv.getElementsByTagName("div");
alert(childrenDivs[0].innerHTML);
}
最好在div上有一个类并查找该类。
答案 1 :(得分:2)
如果你想获得前一个元素兄弟,那么遍历DOM直到找到它:
function get_previous_element_sibling(element) {
var prev = element.previousSibling;
while (prev && prev.nodeType !== 1) {
prev = prev.previousSibling;
}
return prev;
}
然后你可以通过以下方式获得以前的兄弟姐妹:
get_previous_element_sibling(this)
及其ID
get_previous_element_sibling(this).id
答案 2 :(得分:0)
根据您的评论,yes, preceding! this line
将无法使用IE8,因为previousElementSibling
<input type="submit" onclick="clickon(this.previousElementSibling.id)" value="Добавить">
或使用jQuery进行跨浏览器支持
<input type="submit" onclick="clickon($(this).prev().attr('id'))" value="Добавить">