2016-04-15 4 views
2

SELECT内に配置すると、次のJavaScriptコードが使用されています。OPTIONをすべて検索しようとしています。select要素内のテキストとは

var temp = document.querySelectorAll("select"); 
console.log(temp[0].childNodes); 

とHTMLマークアップは、この

<select> 
    <option>1</option> 
    <option>2</option> 
</select> 

である。しかし、それは、Google Chromeブラウザで私に次のような出力を提供します

enter image description here

ので、すべてのオプションの前につくれ出力内のテキストが何でありますか。

+1

を "テキスト" ノードが空白であるように見えます。 [ここの例](https://jsfiddle.net/3a2mzqre/)。 – showdev

+0

@showdevはいあなたは合っていますが、私はオプションだけが必要です –

+1

ドキュメントから、['Node.childNodes'](https://developer.mozilla.org/en-US/docs/Web/API/Node/childNodes)読み取り専用プロパティは、指定された要素の子ノードのライブコレクションを返します。子ノードは、例えば、テキストノードとコメント。それらをスキップするには、代わりに['ParentNode.children'](https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/children)を使用してください。 – Rayon

答えて

1

Node.childNodes読み取り専用のプロパティは、指定された要素の子ノードのライブコレクションを返します。子ノードは、例えば、テキストノードとコメント。それらをスキップするには、代わりにParentNode.childrenを使用します。[ドキュメントから]

var temp = document.querySelectorAll("select"); 
 
console.log(temp[0].children);
<select> 
 
    <option>1</option> 
 
    <option>2</option> 
 
</select>

3

あなたはselect要素のoptionsプロパティを使用する必要があり、

var temp = document.querySelectorAll("select"); 
console.log(temp[0].options); 

childNodesはまた、あなたの空のテキストノード(白スペース/リターン)を得ます。したがって、optionsを使用することをお勧めします。他の賢明なあなたはselect要素の上にquerySelectorAllを使用することができます。

var temp = document.querySelectorAll("select"); 
console.log(temp[0].querySelectorAll("option")); 
+1

'\ n'文字を返しています..' option'の後にも同じことが表示されています! – Rayon

+1

@RayonDabreうん、私はすでに@childNodesはあなたに空のテキストノード(空白/戻り値)を与えるでしょう。とにかくそれを指してくれてありがとう。 –

1

テキスト値は、このために取得するものである:今

<select id="selectid"> 
    <option value="volvo">Volvo text</option> 
    <option value="saab">Saab text</option> 
    <option value="mercedes">Mercedes text</option> 
    <option value="audi">Audi text</option> 
</select> 

すべて<option>オブジェクトが、この使用したい場合:純粋なJavaScriptを使用して

$("#selectid option").each(function() 
{ 
    //you get "each" option for the select in the id. 
}); 

function displayResult() { 
var x = document.getElementById("selectid "); 
var txt = "All options: "; 
var i; 
for (i = 0; i < x.length; i++) { 
    txt = txt + "\n" + x.options[i].text; 
} 
alert(txt); 
} 
+1

jQueryを使用するには、純粋なjavascriptで同じことを達成する方法が必要です –

+0

答えが編集されました。純粋なjsで表示されるようになりました – thepanch

1

これを試すことができます。

var selects = document.querySelectorAll("select"); 
var firstSelect = selects[0]; 
var firstSelectOptions = firstSelect.querySelectorAll("select"); 
// firstSelectOptions[0].innerText 
// firstSelectOptions[0].innerText 
+0

ウェブページでselectのすべてのオプションを返します。 –

+0

@ShubhamPatel、私は答えを更新しました。 –