2012-03-07 4 views
1

内部divの内容を関数に渡す必要があります。例えば、myfun(string)です。私は複数の内部子ノードを関数に渡す

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

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

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

を使用してみましたが、それらのどれも動作するようには思えません。私は関数が一般的でなければならないので、getElementByIdの値を渡すことはできません。これは、さまざまな<a>要素(理想的には、のthis。キーワードを含むべきだと思うので)任意の助け

enter image description here

感謝。

+0

を前に述べたように、インラインJavaScriptを使用しないでください。言い訳はありません、ただそれをしないでください! – Mathletics

+0

どこで '(これ)'を選んだのですか? –

答えて

1

を使用してみてください、「これは」リンクを参照し、使用することはできません。

非常にクリーンソリューションは、テキスト

JavaScriptのオブジェクトが含ま受け取るために起こっていることを知っているMYFUNC持っているだろう

:私がきたよう

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> 
2

あなたはクロスブラウザを動作するようにそれを必要としない場合は、あります:

this.getElementsByClassName('label')[0] 

これはIE 8 and belowに失敗します。

あなたがHTML/DOM構造が変更されません絶対に特定している場合、あなたはおそらく使用できます。

this.nextSibling.children[0]; 
をしかし、これは childNode

+0

正方形のビーフパティのために+1 –

+0

私はアップの投票に感謝していますが、私はあなたが何を意味するかは考えていません。しかし、地獄、とにかく..ありがとう! =) –

0

としてtextNode Sを考慮ブラウザで問題がある可能性があります試してみてください。 this.parent.children[1].children[0].innerHTML

本当にこの混乱の代わりにダイナミックIDを使用する必要があります。

1

オブジェクトthisは、それが呼び出す<a>タグに適用されます。最初に親divを呼び出し、それに応じて子を選択する必要があります。

はあなたの関数でthis.parent.children[1].children[0].innerHTML

関連する問題