0

抱歉标题不好,但我有类似下面的代码

$('[data-value]').each(function() {
            var $this = $(this);
            $this.val($this.data('value'));
});

<select data-value="14:00">
    <option>12:00</option>
    <option>13:00</option>
    <option>14:00</option>
    <option>15:00</option>
</select>

目标是轻松预先选择列表中的“数据值”。

代码运行良好,除非我在页面初始化后添加选择元素。

例如,这将不起作用

$('body').append('<select data-value=yellow><option>black</option><option>yellow</option><option>red</option></select>');

那么,即使在页面初始化后添加 DOM 元素,如何才能使其工作呢?

谢谢

4

1 回答 1

0

好的,你可以使用类似的东西:

它检查新的选择元素,如果发现一些没有“处理”类的元素,它会处理它们。

function checkNewSelects() {
    $('select').not(".processed").each(function() {
        var $this = $(this);
        $this.val($this.data('value'));
        $this.addClass('processed');
    });
    setTimeout(checkNewSelects, 300);
}
setTimeout(checkNewSelects, 300);
于 2012-07-13T09:09:01.693 回答