考慮下面的HTML返回的HTML(),而不是不確定的VAL()時,沒有值屬性設置
<select>
<option value="hasAttr">Has a value attr</option>
<option>Does not have a value attr</option>
</select>
正如你所看到的,其中的一個選項有一個屬性的值設置與其他沒有。但是,當我通過jQuery去檢查每個選項的val()
時,沒有設置值屬性的選項會返回標記(html()
)內的文本,而不是像我通常所期望的那樣返回undefined
。
var $select = $('select');
$select.each(function() {
var $this = $(this),
$options = $this.children('option');
$options.each(function(){
var $option = $(this),
$value = $option.val(),
$html = $option.html();
console.log('Option Value: '+ $value +'\nOption HTML: '+ $html);
});
});
即使我更改代碼來尋找$option.attr('value')
,我仍然得到同樣的結果。有沒有一種方法可以檢查<option>
是否有返回布爾值的value
屬性?
這是jsFiddle。
更新jsFiddle與解決方案。
如果您不想要選項有一個值,您需要使用'',即使如此,它實際上也有一個空字符串('「」'),它在概念上與沒有值('null')有所不同。 – zzzzBov