2014-10-06 65 views
0

當頁面加載時,我想使用jquery對下拉列表進行排序,在下拉列表中首先顯示BI選項。我正在從數據庫中生成下拉菜單。Jquery下拉列表,當頁面加載時總想要一個值

下面的jQuery我用
  <select id="conversionPixels" name="conversionPixels" > 
        <option value="10">PA3G ABTestConversion1DayWindow</option> 
        <option value="11">activ Conversion</option>    
        <option value="12">Proactiv Plus 24 Hour View</option> 
        <option value="13">Proactiv Plus Conversion</option>  
        <option value="0">BI</option> 
      </select> 

,它不工作

   $("#conversionPixel").each(function() { 

       // Keep track of the selected option. 
       var selectedValue = $(this).val(); 

       // Sort all the options by text. I could easily sort these by val. 
       $(this).html($("option", $(this)).sort(function(a, b) { 
        if(a.text=='BI'){ 
         return -1; 
        } 
        if(b.text=='BI'){ 
         return 1; 
        } 
        return a.text == b.text ? 0 : a.text < b.text ? -1 : 1 
       })); 

       // Select one option. 
       $(this).val(selectedValue); 
      }); 
+0

http://jsfiddle.net/arunpjohny/ytucm34k/1/ – 2014-10-06 07:32:55

+0

你好約翰,我不想排序,但我想對其他價值觀之上relarless的BI總是文本。 – user3157090 2014-10-06 07:36:13

+0

你能解決這個問題嗎? – JME 2014-10-10 05:22:14

回答

0

那麼,爲什麼不這樣做

當你從數據庫中的數據確保BI就像

先用代碼
select id,name 
from friends 
order by id=5 desc, id asc 

然後只是使用foreach來創建您的選擇選項 - BI將首先

0

使用此代碼片段:

$("#conversionPixels > option").each(function() { 
      if(this.text == "BI"){ 
       $(this).remove(); 
       $("#conversionPixels").prepend($(this)); 
      } 
    }); 
0

如果我理解正確你的問題,你想要的是第一個出現在select<option value="0">BI</option>元素。嘗試運行下面的代碼片段。

$("#conversionPixels").children().each(function(index, elem) { 
 
    var $elem = $(elem); 
 
    if ($elem.val() === "0") { 
 
    $elem.remove(); 
 
    $("#conversionPixels").prepend($elem); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="conversionPixels" name="conversionPixels"> 
 
    <option value="10">PA3G ABTestConversion1DayWindow</option> 
 
    <option value="11">activ Conversion</option> 
 
    <option value="12">Proactiv Plus 24 Hour View</option> 
 
    <option value="13">Proactiv Plus Conversion</option> 
 
    <option value="0">BI</option> 
 
</select>

0

這工作,如果你想改變選擇選項的文本值始終BI。

//copy values BI 
var html = $('select option').filter(function() { return $(this).html() == "BI"; }).html(), 
value = $('select option').filter(function() { return $(this).html() == "BI"; }).val(); 

//remove option BI 
$('select option').filter(function() { return $(this).html() == "BI"; }).remove(); 


//add to start copied value BI    
$('select').prepend("<option selected value ='"+value+"'>"+html+"</option>"); 
相關問題