タグに値なんて存在しない(あえて言うならタグ名くらいか)。値(ノード値)を持ちうるのは要素や属性。
# DOM を使うなら、データ層(要素、属性)とシリアル層(タグ)の区別は必須。
> よろしくお願い致します。
何をお願いされたものかイマイチ分からないので、とりあえず以下に DOM ツリー構造を示す。
# なお、>>0 は妥当な HTML ではないので、バリデータを通さずにパースしたものとする。また、簡便のため、改行文字によるテキストノードを考えない。
・DOM ノードは、重要な 3 つのプロパティ、すなわちノード型(nodeType)、ノード名(nodeName)、ノード値(nodeValue)を持つ。
・DOM ノードは、親父(parentNode)、子供(childNodes[n 番目])、兄者(previousSibling)、弟者(nextSibling)を持つ。
// 書式:nodeType (nodeName, nodeValue)
+ Document ('#document', null)
|
+ Element ('HTML', null)
|
+ Element ('BODY', null)
|
+ Element ('A', null)
| |
| + Text ('#text', 'メニュー')
|
+ Element ('P', null)
|
+ Text ('#text', 'xxxx')
a 要素ノードから見て、p 要素ノードは nextSibling になる。p 要素ノードの childNodes[0] であるテキストノードの nodeValue を見れば、'xxxx' を取得できる。
> リンククリック時にJavascriptでイベントオブジェクトを取得したい
<a href="javascript:linkTest()"> ではイベントオブジェクトを取得できない(と言うか、何でわざわざ javascript: スキームを使う?)。レガシーな書き方だが、とりあえず
<a onclick="linkTest (event);">
に修正する。すると、
function linkTest (event) {
var target = event.target || event.srcElement; // DOM2 Events || IE Event Model
}
で、イベントの発生源、すなわち a 要素ノードを取得できる。そして、target.nextSibling が p 要素ノード。