2015-05-08 126 views
0

我使用下面的html代碼從調試窗口中獲取了dropdownlist。這是黑箱中的代碼,我無法得到。在這個網頁中,我想使用JavaScript來刪除選項,如果它不以「SS」開頭。我怎麼做?用於從下拉列表中刪除選項的Javascript

<select id="prgid" special="lists.specprog" name="UF-003054-1"> 
<option value=""> </option> 
<option value="5488">SS Twain CE</option> 
<option value="5487">Twain IS</option> 
</Select> 

我正在做這樣的事情,這是行不通的。請幫忙。

var select=document.getElementById('prgid'); 
      for (i=0;i<select.length; i++) { 
       var prg = select.options[i].value; 
       if (!prg.substring,0,3) == 'SS ') { 
       select.remove(i); 
       } 
      } 

回答

0

你有正確的想法。試試這個:

var select = document.getElementById('prgid'); 
for (var i in select.children) { 
    if (select.children[i].innerHTML.match('SS') !== 0) { 
     select.children[i].outerHTML = ''; 
    } 
} 

http://jsfiddle.net/howderek/35vagg9u/

0

你靠近,你只是錯過了幾件事情

var prg = select.options[i].value; 
//should be 
var prg = select.options[i].text; 

應該使用的.text,因爲.value的將返回5488和5487,將的.text返回「SS吐溫CE」和「吐溫IS」

而你的子串方法格式不正確,它應該是

if (prg.substring(0, 3) != 'SS ') 

全部放在一起

var select=document.getElementById('prgid'); 
for (i=0;i<select.length; i++) { 
    var prg = select.options[i].text; 
    if (prg.substring(0, 3) != 'SS ') { 
     select.remove(i); 
    } 
} 
0
var select=document.getElementById('prgid'); 
for (i=0;i<select.length; i++) { 
    var prg = select.options[i].text; 
    if (prg.substring(0,3) == 'SS ') { 
     select.remove(i); 
    }   
} 

使用以上的JavaScript。 您必須使用select.options[i].text才能獲得選項文本。但是如果你使用.value這將給你選擇價值。而看到.substring的語法()

對於代碼參考,請參閱jsFiddle

+0

非常感謝您的回覆。這是一個很大的幫助! – Kaur

+0

@卡爾歡迎您 –

0

好,howderek已經貼好工作的選擇,但它可能是值得張貼代碼的固定版本,以便更好地理解的什麼地方出了錯。你非常接近!

有隻是一對夫婦失誤:

if語句中的條件:

!prg.substring,0,3) == 'SS ' 

應該將已經:

prg.substring(0,3) != 'SS ' 

你被錯誤地調用substring()功能,此外,您對!運算符的放置將導致您將鑄造的布爾值與字符串進行比較,而不是一個字符串反對一個字符串(這是你想在這種情況下)。

此外,由於您實際訪問的是選項的文本,而不是其值,因此應使用select.options[i].text;而不是select.options[i].value;

這樣你得到的JavaScript看起來像:

var select = document.getElementById('prgid'); 
for (i = 0; i < select.length; i++) { 
    var prg = select.options[i].text; 
    if (prg.substring(0, 3) != 'SS ') { 
     select.remove(i); 
    } 
} 

這裏有一個JSFiddle證明 - 注意如何不以「SS」開頭的所有選項已被刪除。

希望這會有所幫助!如果您有任何問題,請告訴我。

相關問題