javascript - jQuery 选择选项不适用于尚未添加到 DOM 的选择

标签 javascript jquery html

我试图在尚未添加到 DOM 的选择元素中选择特定选项,但它似乎不起作用。我想做的事情是不可能的吗?

我想单击“添加选择”按钮,然后看到一个新的选择元素添加到 DOM 中,并选择了“0”选项。

这是一个

JsFiddle

HTML

<div id="container">
    <select class="mySelect">
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2" selected>2</option>
    </select>
</div>

<button id="addSelect">Add Select</button>

JS

$(document).ready(function() {
    var $template = $('.mySelect').first().clone(),
        $container = $('#container');

    $template.find('option').each(function(i, option) {
       $(option).prop('selected', false); 
    });

    $('#addSelect').click(function(e) {
        e.preventDefault();
        $container.append($template.clone());
    });
});

正如您在 fiddle 中看到的,添加了新的选择,但它选择了“2”选项。

我还尝试使用 $template.val('0') 重置选择,但这也不起作用。选择仍显示为选中“2”选项。

最佳答案

删除属性 selected 因为在 none DOM 元素上设置属性不会设置它的属性,元素没有链接到 DOM:

$template.find(':selected').removeAttr('selected');

-DEMO-

关于javascript - jQuery 选择选项不适用于尚未添加到 DOM 的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30900428/

相关文章:

jquery - jquery 中 $.each 的问题

javascript - 表单提交后返回元素类

Javascript - 将参数传递给非匿名函数

javascript - Jquery UI slider 附加标签

javascript - jquery - 使用 .closest()

javascript - 如何切换显示 : inline and display toggle?

javascript - 不理解 ko.observables

javascript - 将标记图标添加到 svg map

javascript - 左侧下拉

javascript - 使图像映射的Click功能出现在特定的Div中