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 - html5视频结束后切换源

javascript - 知道为什么这个 Paperjs 脚本有一定的滞后吗

c# - jquery ajax post 到 .aspx 页面加载 - 如何读取发布的变量?

javascript - jQuery动态复选框位置、合并示例发现

php - 如何从 PHP 中的选择查询中获取列名?

javascript - 在 AngularJs 的 Controller 中引用本地 json 对象

javascript - 使用文本字段更改表单隐藏字段

mysql - 连接表以从两个表中选择数据时出错

mysql - 选择子表没有数据的客户