jquery - 使用 $(html, props) 并附加 .data 通过 jQuery 创建新元素

标签 jquery

我正在使用对象符号 ( http://api.jquery.com/jQuery/#jQuery2 ) 动态创建一个列表项,并且我希望能够添加 jQuery .data() (http://api.jquery.com/data/)。

我有当前的代码:

$('<li>', {
        id: 'filter',
        text: 'Data Filter 1',
        click: function() {
            filter['jQuery_object'] = $(this);
            filters_display.trigger('remove', filter);
        }
    }).appendTo($(this));

我已经尝试过这个:

$('<li>', {
        id: 'filter',
        text: 'Data Filter 1',
        load: function() {
            $(this).data('filter', filter);
        },
        click: function() {
            filter['jQuery_object'] = $(this);
            filters_display.trigger('remove', filter);
        }
    }).appendTo($(this));

但是.load()<li> 时事件似乎不会被触发被附加到 DOM 中。有没有办法在不选择新的 <li> 的情况下完成此任务?通过它的ID?

我设想它通过返回一个对象数组来工作:

$('<li>', {
        id: 'filter',
        text: 'Data Filter 1',
        data: function() {
            return [{ key: 'filter', value: filter }]
        }
        click: function() {
            filter['jQuery_object'] = $(this);
            filters_display.trigger('remove', filter);
        }
    }).appendTo($(this));

最佳答案

var div = $("<div></div>", {
    data: {
        foo: "bar"
    }
});

alert( div.data("foo") ); // => bar

关于jquery - 使用 $(html, props) 并附加 .data 通过 jQuery 创建新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4035130/

相关文章:

javascript - Vanilla JS 事件委托(delegate)(不是点击事件)返回的不仅仅是文档对象

javascript - 提交文本区域按 Enter 键

javascript - jQuery .each 帮助,我想 trim ()数组中的所有字符串

javascript - 自定义 Flatpickr Knockout 装订

javascript - 当两个输入相同时启用按钮

jquery - textArea和CodeMirror : How to fill text area and highlight?

Jquery Nth-Child 问题

javascript - 提取 JSON 值并打印为 HTML

javascript - 向上滚动到顶部时堆叠两个 div

jquery - Phonegap的 "onBodyLoad()/onDeviceReady()"函数和jquery的 "$(document).ready()"的关系