正如问题所说,我如何使用jQuery添加一个新的选项到下拉列表?
谢谢
正如问题所说,我如何使用jQuery添加一个新的选项到下拉列表?
谢谢
当前回答
另外,使用.prepend()将选项添加到选项列表的开头。 http://api.jquery.com/prepend/
其他回答
请注意@Phrogz的解决方案不能在ie8中运行,而@nickf的解决方案可以在所有主流浏览器中运行。另一种方法是:
$.each(myOptions, function(val, text) {
$("#mySelect").append($("<option/>").attr("value", val).text(text));
});
在没有插件的情况下,这可以更容易,而不需要使用太多的jQuery,而是稍微老派一些:
var myOptions = {
val1 : 'text1',
val2 : 'text2'
};
$.each(myOptions, function(val, text) {
$('#mySelect').append( new Option(text,val) );
});
如果你想指定选项a)是否是默认选择值,b)现在应该被选择,你可以传递另外两个参数:
var defaultSelected = false;
var nowSelected = true;
$('#mySelect').append( new Option(text,val,defaultSelected,nowSelected) );
你可以直接使用
美元(Html ddlClassName”)。(“<选项selected =价值=“selected \ \ " \ " > 1 < /选项> <选项价值= \ " \ " > 2 < /选项>”)
这里你可以使用直接字符串
我需要为下拉菜单添加尽可能多的选项,因为我的页面上有下拉菜单。所以我是这样用的:
function myAppender(obj, value, text){
obj.append($('<option></option>').val(value).html(text));
}
$(document).ready(function() {
var counter = 0;
var builder = 0;
// Get the number of dropdowns
$('[id*="ddlPosition_"]').each(function() {
counter++;
});
// Add the options for each dropdown
$('[id*="ddlPosition_"]').each(function() {
var myId = this.id.split('_')[1];
// Add each option in a loop for the specific dropdown we are on
for (var i=0; i<counter; i++) {
myAppender($('[id*="ddlPosition_'+myId+'"]'), i, i+1);
}
$('[id*="ddlPosition_'+myId+'"]').val(builder);
builder++;
});
});
这将动态地设置值为1到n的下拉列表,并根据下拉列表的顺序自动选择值(例如,第二个下拉列表在框中得到“2”,等等)。
我不能用这个或这个,这太荒谬了。对象或$。在第二个.each()中,我必须获得该对象的特定ID,然后在它附加之前将整个对象获取并传递给我的函数。幸运的是,我的下拉列表的ID被一个“_”隔开,我可以抓取它。我觉得我不应该这样做,但它一直给我jQuery异常。我所经历的那些让别人纠结的事情,也许会让人乐于知道。
开始时将项目添加到列表中
$("#ddlList").prepend('<option selected="selected" value="0"> Select </option>');
最后将项目添加到列表中
$('<option value="6">Java Script</option>').appendTo("#ddlList");
常用的下拉操作(获取,设置,添加,删除)使用jQuery