javascript - 设置动态构建的选择选项的值并应用outerHTML中的更改

标签 javascript jquery select

在以下代码中,未显示所选选项 ( fiddle ):

var options = ["option1", "option2", "option3"]
var $select = $("<select></select>");

$.each(options, function(index, value) {
   var $option = $("<option></option>", {
     "text": value,
     "value": value
   });
   $select.append($option);
});
$select.val("option3");
$('#dropdown').append($select.prop("outerHTML")); // 'dropdown' is an id of a div

现在,如果我这样做:append($select),它就会起作用,但我需要使用outerHTML。如何设置 select 元素的值,使其在 outerHTML 中受到影响?

最佳答案

这是updated fiddle.

问题是,在您选择下拉列表的值后:

$select.val("option3");

您需要添加这行代码,将“selected”属性添加到所选选项:

$select.find("option:selected").attr('selected', true);

这是 fiddle 的完整代码:

JS:

$(document).ready(function() {
    BuildDropdown();
});

function BuildDropdown()
{
   var options = ["option1", "option2", "option3"]
   var $select = $("<select></select>");

   $.each(options, function(index, value) {
      var $option = $("<option></option>", {
        "text": value,
        "value": value,
        //"id": value
      });
      $select.append($option);
    });
    $select.val("option3");
    $select.find("option:selected").attr('selected', true);//adds "selected" attribute to the selected option
    $('#dropdown').append($select.prop("outerHTML"));

    console.log($select.prop("outerHTML"));// will output: <select><option value="option1">option1</option><option value="option2">option2</option><option value="option3" selected="selected">option3</option></select>
}

关于javascript - 设置动态构建的选择选项的值并应用outerHTML中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401837/

相关文章:

javascript - 如何定义可以链接到其他 Javascript 库的 Javascript 函数?

javascript - jQuery 的单击事件不适用于动态生成的 li

从多个表中选择一个内部表

MySQL - 如何在 SELECT 查询中使用 ENCLOSED BY?

mysql - 选择除 A 或 B 之外的记录

javascript - jQuery 检查按下的键是否可打印

javascript - 使用 Javascript 设置 div 标签的背景大小不起作用

javascript - 如何在不重新索引数组键的情况下在 JQuery 中添加和删除数组

javascript - 如何通过 jQuery 运行 php 文件向管理员发送电子邮件

php - 更新脚本使计数器加倍