Reputation: 15646
I have a easy select tag:
<select>
<option></option>
<option></option>
</select>
Then I want use jQuery get the option's content:
var s=$('select option');
for(var i=0;i<s.length;i++){
console.log(s[i]);
}
it would only show "<option>"
,without the content.
If I use console.log(s[i].html());
, it would tell me it is wrong.
So how can I get the content?
Upvotes: 0
Views: 4922
Reputation:
You don't need jQuery to get the text content.
An HTMLOptionElement
has a .text
property.
var s = $('select option');
for(var i = 0; i < s.length; i++) {
console.log(s[i].text);
}
Although if you want the .outerHTML
of the element (a little confused by your question), you could do this...
var s = $('select option');
for(var i = 0; i < s.length; i++) {
console.log(s[i].outerHTML);
}
...though this only recently became available in Firefox, so you could create a method to patch it...
function outerHTML(el) {
return el.outerHTML || document.createElement('div')
.appendChild(el.cloneNode(true))
.parentNode
.innerHTML;
}
...and use it like this...
var s = $('select option');
for(var i = 0; i < s.length; i++) {
console.log(outerHTML(s[i]));
}
Upvotes: 3
Reputation: 337691
Assuming by 'content' you mean the text value of the option, try this:
$("select option").each(function() {
console.log($(this).text());
});
Upvotes: 1