jQuery - 在使用jQuery创建下拉列表时选择设置下拉选项

时间:2015-12-03 11:47:15

标签: jquery

我正在使用jQuery迭代填充单个选择下拉菜单:

if(users_inf === text){
    mySelect.append(
         $('<option></option>').val(text).html(text)
    );
}else{
    $('<option></option>').val(text).html(text)
}

users_infotext匹配时,我要做的是将选项设置为“已选择”。

我假设我会使用:

.prop('selected', true);

但是,我试过了:

$('<option></option>').val(text).html(text).prop('selected', true);

但没有快乐 - 欢迎任何建议!

3 个答案:

答案 0 :(得分:3)

有时,旧的方法是最好的:

def myfunc(a,b):
  return a+b[0]

v = np.vectorize(myfunc, exclude=['b'])

a = np.array([1,2,3])
b = [0]

v(a,b)

直播示例:

&#13;
&#13;
var opt = new Option(text);
opt.selected = users_inf === text;
mySelect[0].options.add(opt);
&#13;
doOne($("#single"), "one");
doOne($("#multi"), "one");
doOne($("#single"), "two");
doOne($("#multi"), "two");
doOne($("#single"), "three");
doOne($("#multi"), "three");

function doOne(mySelect, text) {
  var opt = new Option(text);
  opt.selected = true;
  mySelect[0].options.add(opt);
}
&#13;
&#13;
&#13;

也就是说,jQuery方式也有效:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="single"></select>
<hr>
<select id="multi" size=10 multiple></select>

......这让我想知道是否还有其他事情发生。

&#13;
&#13;
  $("<option></option>")
      .val(text)
      .html(text)
      .prop('selected', users_inf === text)
      .appendTo(mySelect);
&#13;
doOne($("#single"), "one");
doOne($("#multi"), "one");
doOne($("#single"), "two");
doOne($("#multi"), "two");
doOne($("#single"), "three");
doOne($("#multi"), "three");

function doOne(mySelect, text) {
  $("<option></option>").val(text).html(text).prop('selected', true).appendTo(mySelect);
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您实际上需要将selected选项设置为selected不正确。很奇怪,我知道。

所以你的功能是:

if(users_inf === text){
    mySelect.append(
         $('<option></option>').val(text).html(text).attr("selected","selected");
    );
} else {
    $('<option></option>').val(text).html(text)
}

答案 2 :(得分:0)

以下我将如何做到这一点:

&#13;
&#13;
$(function () {
  var values = ["bad", "bad", "good", "bad"];

  $(values).each(function () {
    $("#mySelect").append("<option value=\"" + this + "\">" + this + "</option>");
  });
  
  $("#mySelect option[value='good']").prop("selected", true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select id="mySelect"></select>
&#13;
&#13;
&#13;