javascript - Jquery/Javascript - 构建选择菜单的最有效方法?

标签 javascript jquery

我正在使用 jquery 并尝试调整我的选择菜单生成器以运行得更快。

我正在使用each和append,但是我已经切换到标准for循环,并且当前尝试将我的选项从使用append转换为使用.html()附加到我的选择选项的连接字符串。我似乎在尝试将 var 选项对象转换回 html 字符串时不知所措。有人可以告诉我我可能做错了什么吗?

$.selectMenuBuilder = function(json) {
    var myselect = $("#myselect");    
    var list = "<option value=\"\">> Select Account Number</option>";

    var l= json.funding.length;
    for(var i=0;i<l; i++) { 
       var funding = json.funding[i];    
       var option = $("<option value=\"" + funding.id + "\">" + funding.accountNumber + "</option>")

       if(someLogic) {
           option.attr("selected", "selected");
       }

       //Having trouble here converting option object back to html. 
       list += option.html();
   }

   list += "<option value=\"addnew\">+ New Account Number</option>";

   myselect .html(list);
}

最佳答案

您完全可以不再使用 jQuery 创建 option元素(除非您使用它有其他不为人知的原因)。

即而不是

var option = $("<option value=\"" + funding.id + "\">" + funding.accountNumber + "</option>")
if(someLogic) option.attr("selected", "selected");

你可以这样做:

list += "<option value=\"" + funding.id + "\" "+ (someLogic?'selected':'') +">" + funding.accountNumber + "</option>"
<小时/>

其次,$(option).html()将返回innerHTML 选项元素的,不包括选项标记名称。为了以跨浏览器的方式执行此操作,您可以将该选项包装在外部元素中并使用其 innerHTML相反。

$(option).wrap('<select/>').parent().html()会给你你想要的。

关于javascript - Jquery/Javascript - 构建选择菜单的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145563/

相关文章:

javascript - 使用 Google Analytics 跟踪目标 ajax 表单

javascript - Canvas 动画工作不顺畅

javascript - 动态添加文件以请求发布

javascript - 使用 Jest 对 ThreeJS 应用程序进行单元测试

javascript - 序列化表单数据并将它们添加到 jquery $.post

javascript - Jquery 悬停在标签上持续触发

javascript - 如何在一个 jquery ".css()"中为一段文本添加多个文本阴影

javascript - 使用JQuery控制div的高度

javascript - 无法使用Jquery拼接数组值

javascript - CSS - 使用 :nth-child to select an element