0

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

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

那么如何获取内容呢?

4

3 回答 3

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]));
}
于 2012-04-08T14:28:26.390 回答
1

假设“内容”是指选项的文本值,试试这个:

$("select option").each(function() {
    console.log($(this).text());
});
于 2012-04-08T14:17:24.597 回答
0

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

于 2012-04-08T14:17:26.173 回答