2012-04-08 178 views
0

HTML 我怎样才能用jQuery

<select> 
    <option></option> 
    <option></option> 
</select> 

然后我想使用jQuery获得该选项的内容:

var s=$('select option'); 
for(var i=0;i<s.length;i++){ 
    console.log(s[i]); 
} 

它只会显示"<option>",没有内容。

如果我使用console.log(s[i].html());,它会告诉我它是错误的。

那么我怎样才能得到内容?

+1

可能重复[jQuery的获得选择选项的文本(http://stackoverflow.com/questions/196684/jquery-get-select-option-文本) – 2012-04-08 14:22:50

+0

有人可以告诉我为什么它不与.html()方法一起工作吗? 在我看来,它应该... – 2012-04-08 14:24:39

+1

@Euloiix:因为'for'循环内不是jQuery对象,因此jQuery的'.html()'方法不可用。 – 2012-04-08 14:39:08

回答

3

你并不需要jQuery来获得文本内容。

一个HTMLOptionElement有一个.text属性。

var s = $('select option'); 

for(var i = 0; i < s.length; i++) { 
    console.log(s[i].text); 
} 

但如果你想要的元素(由你的问题有点糊涂了).outerHTML,你可以这样做......

var s = $('select option'); 

for(var i = 0; i < s.length; i++) { 
    console.log(s[i].outerHTML); 
} 

...虽然这只是最近在Firefox中可用,所以你可以创建一个方法来修补它...

function outerHTML(el) { 
    return el.outerHTML || document.createElement('div') 
            .appendChild(el.cloneNode(true)) 
            .parentNode 
            .innerHTML; 
} 

...并使用它像这样...

var s = $('select option'); 

for(var i = 0; i < s.length; i++) { 
    console.log(outerHTML(s[i])); 
} 
1

通过“内容”假设你的意思的选项的文本价值,试试这个:

$("select option").each(function() { 
    console.log($(this).text()); 
}); 
0

使用text()的方法来提取元素的文本节点值