簡體   English   中英

jQuery,用於選擇沒有價值的選項或特定文本

[英]jQuery for selecting options that have no value, or particular text

我選擇了所有帶有文本“ All”且沒有值的頂部選項的選擇,但是我需要編寫一些適用於這些選擇中所有其他選項的代碼。

我有下面的代碼可以正常工作,但是我寧願取消第二行的條件。 我確實嘗試使用jQuery的':not'選擇器,但無法弄清楚如何為缺少/空/未定義的值配置它。 如果我將值顯式設置為空字符串“”,然后使用:not,那將是最好的方法嗎?

_.each($(select).find('option'), function(option) {
    if (optionVal = $(option).val()) {

請原諒我對_.each而不是jQuery的用法,我們寧願保持一致,因為我們使用下划線進行了很多操作,而不僅僅是遍歷jQuery匹配集。

在我頭頂上方,您可以使用以下任一方法:

$(select).find('option[value!=""]');

要么

$(select).find('option:not([value=""])');

返回不是<option value="">All</option>

如果第一個option始終是無值選項,則還可以使用:

$(select).find('option:not(:eq(0))')

選擇不是第first-child所有option元素。

如果要從每個Select元素中排除第一個Option,可以使用:not()選擇器和.find()方法:

$('select').find('option:not(:first)');  

如果要過濾具有值的選項,可以使用.filter()方法:

$('select option').filter(function() {
   return $.trim(this.value).length;
});

請注意,要遍歷jQuery集合,最好使用jQuery的.each()方法,否則您將失去jQuery提供的可鏈接性。

$(select).find('option[value]'); // selects all <option>s with value

如果我沒有正確理解這個問題。

你可以試試這個

HTML:

<select>
    <option>All</option>
    <option value>0</option>
    <option value=1>One</option>
    <option value=2>Two</option>
</select>

JS:這只會返回最后兩個選項(一個和兩個)

$('select option').filter(function(){
    return this.hasAttribute('value') && this.value.length;
});

篩選missing/null/undefined值的選項。 這是一個例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM