有条件地在选项标记中应用布尔属性

Applying boolean attributes in option tag conditionally

本文关键字:应用 布尔 属性 选项 有条件      更新时间:2023-09-26

我正在使用jQuery从数组动态构建一个select元素,我需要在这些option元素中的一个上设置bool属性selected。如果我试图通过选项

"selected": mycondition ? "selected" : undefined

无论如何,该属性都会出现在标记中。

如果需要,如何仅放置属性

这就是我创建option元素的方式:

options.forEach(function(option){
    $("<option/>", {
       text: option.name,
       value: option.value
    }).appendTo("#mySelectElem");
});

创建option对象时,始终可以链接.prop()

options.forEach(function(option){
    $("<option/>", {
       text: option.name,
       value: option.value
    })
    .prop('selected', mycondition) //<===
    .appendTo("#mySelectElem");
});
options.forEach(function(option){
    var opt = $("<option/>", { //<-- log option in var
       text: option.name,
       value: option.value
    }).appendTo("#mySelectElem");
    if (mycondition) opt.attr('selected', 1); //<-- conditionally add selected
});

好吧,我想我需要提高我的文档阅读技能。。。显然,我可以通过简单地链接prop()方法来实现这一点:

  options.forEach(function(option){
    $("<option/>", {
      value: option.value,
      text: option.text
    })
      .prop("selected", function(){return mycondition ? "selected" : undefined;})
      .appendTo("#mySelectElem");
  }); 

步骤:1.在数组上循环2.如果数组包含值并且所选值为true,则追加测验3.如果附加其他选项,则为elsetest2