Jquery下拉列表,希望页面加载时始终有一个值位于顶部
Jquery dropdown, want one value always top when page loads
当页面加载时,我想使用jquery对下拉列表进行排序,以便在下拉列表中首先显示BI选项。我正在从数据库中生成下拉列表。
<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为您的选择创建选项-BI将是第一个
使用以下代码片段:
$("#conversionPixels > option").each(function() {
if(this.text == "BI"){
$(this).remove();
$("#conversionPixels").prepend($(this));
}
});
如果要更改的选择选项文本值始终为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>");
如果我正确理解了你的问题,你只需要<option value="0">BI</option>
元素位于select
上的第一个。请尝试运行下面的代码片段。
$("#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>
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 有可能在来自链接的警报中有一个值吗
- 是否<asp:文本框>有一个onFocusLost事件
- 让谷歌数据图表有一个24小时x轴
- 我怎么能有一个自动渐变背景使用JavaScript,它适用于最新版本的Internet Explorer
- 在Express.js中,是否有一个相当于res.locals的路由
- 如何创建 HTML 文本框,该文本框顶部有一个水平菜单选项卡可供选择
- 是否有一个不依赖于 AngularJS 以外的其他框架的 angular 拆分窗格库
- 是否有一个 Node.js 相当于 PHP 的包含,以便包含的代码可以访问父文件的变量
- Jquery下拉列表,希望页面加载时始终有一个值位于顶部
- 打开顶部的页面,即使URL中有一个#锚可以降低页面的高度
- 是否有一个JavaScript/css的方法,使同步滚动区域类似于"meld"
- 有可能用JQuery有一个图像淡出&另一个在彼此的顶部淡出,而不必打乱他们的位置
- 是否有一个nodemon对应于windows ?
- Mathjax -为目标添加偏移量"eqref"链接方程时,有一个顶部固定菜单
- 是否有一个纯Javascript等价于jQuery's $.fn.extend
- jQuery:是否有一个类似于change()的标签也在页面加载时运行
- 如果至少有一个输入不是原始的,我如何将CSS应用于链接,如果所有输入都是原始的,我如何撤销该更改?
- 是否有一个jQuery等价于MooTools的Element()构造函数