0
<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 = "text_msg1"を取得して、onclickに入れる方法。どのように?ありがとう!

4

3 に答える 3

5

thisは現在のオブジェクトです。親を見て、divを見つけることができます。レイアウトを変更すると壊れてしまうため、このソリューションはハッキーです。

onclick="clickon(this)"

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

JSFiddle

divにクラスがあり、そのクラスを探す方がよいでしょう。

于 2013-01-18T15:50:09.307 に答える
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
于 2013-01-18T15:58:36.540 に答える
0

あなたのコメントに基づいて、yes, preceding! this lineIE8以下では動作しませんpreviousElementSibling

<input type="submit" onclick="clickon(this.previousElementSibling.id)" value="Добавить">

またはクロスブラウザサポートのためにjQueryを使用する

<input type="submit" onclick="clickon($(this).prev().attr('id'))" value="Добавить">
于 2013-01-18T16:06:22.090 に答える