JavaScript - 如何获取Element的ID

时间:2013-01-18 15:48:04

标签: javascript dom javascript-events

<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。怎么样?谢谢!

3 个答案:

答案 0 :(得分:5)

this是当前对象,您可以查看父级并找到div。这个解决方案很糟糕,因为更改布局意味着它会破坏。

onclick="clickon(this)"

function clickon(btn) {
    var wrappingDiv = btn.parentNode;
    var childrenDivs = wrappingDiv.getElementsByTagName("div");
    alert(childrenDivs[0].innerHTML);
}

JSFiddle

最好在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="Добавить">