2

私は次のものを持っています、

HTML、

<div id="testDiv" name="testHolder">
    Test Content
</div>

JS、

var testVar = document.getElementsByName('testHolder');
console.log(testVar);

私は得る、

[object NodeList] 
[item: function]

わかりました、もう一度説明させてください。

var testVar = document.getElementById('testDiv');
console.log(testVar);

戻り値、

ヌル

したがって、インデックス [0] を追加すると、null のプロパティ [0] を読み取ることができません...なぜですか?

div内の文字列「Test Content」を取得したい。

アップデート、

getElementsByName を使用すると、console.log からこのオブジェクト プロパティを確認できます。

innerHTML: "↵               Test Content↵             "
innerText: "Test Content"

なぜこれを分離できないのですか?

4

4 に答える 4

2

document.getElementsByTagNameパラメータとして関数に提供されるタグに対応する要素の配列を返します。は HTML タグではないundefinedため、コードはコンソールに出力されます。testDivスクリプトを使用getElementsByTagNameすると、タグの名前 (タイプを考える) に基づいて要素を取得するため、div、span、ul、li、input などの名前になります。

たとえば、ページ上のすべての要素document.getElementByTagName("div")を返します。タグの name 属性を検査divず、対応する要素を返します。

これらのメソッドの適切な使用法を示すいくつかの例を次に示します。それらは提供された HTML に依存しています。

//Retrieves Element By ID
var element = document.getElementById("testDiv");
alert("By Id: " + element.innerHTML);

//Retrieves By Tag
var element2 = document.getElementsByTagName("div");
//Remember this is an array we must specify an index
alert("By Tag Name: " + element2[0].innerHTML);

var doesntWork = document.getElementsByTagName("testHolder");
alert("By Tag Name: " + doesntWork[0].innerHTML);//Won't work

デモンストレーション: http://jsfiddle.net/TEJKB/

DOM がロードされた後にこのスクリプトを実行するようにしてください。簡単なテストとして、このスクリプトをページの下部に配置します。それが機能する場合は、イベントにイベント ハンドラーを追加する必要がありますwindow.onload

于 2013-04-02T09:13:59.917 に答える
1

正しい答えを得るには、関数getElementsByNameを使用する必要があります。

getElementsByNamegetElementsByTagNameの両方がnodelistを返すため、さらに結果を調べて最初の項目などを取得する必要があります。

var testVar = document.getElementsByName('testHolder');
if( testVar.length > 0 )
    alert( testVar[0].innerHTML );
于 2013-04-02T09:17:03.333 に答える
1

getElement(s) は常に配列オブジェクトを返します。インデックス番号を追加しますgetElementsByTagName('testHolder')[0]。例えば

var testVar = document.getElementsByTagName('testHolder')[0].innerHTML;
console.log(testVar);
于 2013-04-02T09:17:17.650 に答える
0
var testVar = document.getElementById('testDiv');
console.log(testVar.innerHTML);

または

var testVar = document.getElementById('testDiv').innerHTML;
console.log(testVar);

動作するはず...

于 2013-04-02T09:34:26.183 に答える