Javascript Jquery下拉列表,希望在页面加载时有一个值始终位于顶部
当页面加载时,我想使用jquery对下拉列表进行排序,以便在下拉列表中首先显示BI选项。我正在从数据库中生成下拉列表Javascript Jquery下拉列表,希望在页面加载时有一个值始终位于顶部,javascript,jquery,Javascript,Jquery,当页面加载时,我想使用jquery对下拉列表进行排序,以便在下拉列表中首先显示BI选项。我正在从数据库中生成下拉列表 <select id="conversionPixels" name="conversionPixels" > <option value="10">PA3G ABTestConversion1DayWindow</option> <
<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>
我使用了下面的jquery,它不工作
$("#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);
});
那么为什么不做类似的事情呢 当您从数据库中获取数据时,请确保BI首先使用以下代码
select id,name
from friends
order by id=5 desc, id asc
然后只需使用foreach为您的select创建选项-BI将首先使用此代码段:
$("#conversionPixels > option").each(function() {
if(this.text == "BI"){
$(this).remove();
$("#conversionPixels").prepend($(this));
}
});
如果我正确理解了您的问题,那么您只需要将BI元素放在select上的第一位。尝试运行下面的代码段 $conversionPixels.children.eachfunctionindex,元素{ var$elem=$elem; 如果$elem.val==0{ $elem.remove; $conversionPixels。前置$elem; } }; PA3G ABTestConversion1DayWindow 活动转换 Proactiv Plus 24小时视图 主动加转换 毕
如果要更改的“选择”选项文本值始终为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>");
嗨,John,我不想排序,但我希望BI文本总是在其他值的最上面。你能在哪里解决这个问题?