如何使用jQuery获取html <option>标记的内容

我有一个简单的选择标签:

<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()); 它会告诉我这是错误的。

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


你不需要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]));
}

假设'内容'是指选项的文本值,请尝试以下操作:

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

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

链接地址: http://www.djcxy.com/p/83079.html

上一篇: How can I get html <option> tag's content with jQuery

下一篇: get current text <select>