javascript - 使用 jquery addClass、添加文本和删除 li 的对象格式

标签 javascript jquery

我正在使用对象来添加类、附加文本和删除 li。我想要的是我的对象格式和我的功能很好,或者可以用更好的代码来完成。我还使用逗号分隔类和文本。在我的第二个对象声明中,我没有附加文本,所以我想知道哪个键不包含文本属性。最后一件事是它没有删除最后一个李。 fiddle

jQuery

  function updateli(x) {
    $.each(x, function (val, key) {
        if (Array.isArray(key)) {
            $.each(key, function (i, val) {
                $('li').eq(val).remove()
            })
        }
        $('li').eq(val - 1).addClass(key.split(',')[0]).text(key.split(',')[1])
    })
}
$(function () {
    var ob = {
        2: 'bggreen, hiii',
        3: 'bgblack',
        remove: [0, 3]
    }
    updateli(ob)
})

HTML

<ul>
<li>to be remove</li>
<li></li>
<li></li>
<li>to be remove</li>
</ul>

最佳答案

你可以使用一个对象,而不是用“,”分隔然后分割... 删除的问题是,您首先删除 [0],但是 li 的索引不在同一位置,因此 [3] 不再是现在的 [2]...

function updateli(x) {
    $.each(x, function(key, val) {
        if (Array.isArray(val)) {
            var $lis = $("li");
            for (var i = $lis.length - 1; i >= 0; i--) {
                if (val.indexOf(i) > -1)
                    $lis.eq(i).remove();
            }
        } else {
            $('li').eq(key).addClass(val.class).text(val.text)
        }
    })
}
$(function() {
    var ob = {1: {class: "myClass", text: "myText"}, 3: {class: "myClass"}, remove: [0, 3]}
    updateli(ob)
});

这里是fiddle

关于javascript - 使用 jquery addClass、添加文本和删除 li 的对象格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19497890/

相关文章:

javascript - 将函数作为参数传递

javascript - DTM 中基于事件的规则的 'Conditions' 部分中的自定义脚本

javascript - jqgrid下拉菜单传递另一列的值

javascript - 在 html5 中围绕中心轴旋转内容

javascript - 使用 ID 正则表达式或冗余类的 Jquery 选择器

javascript - 在 svg 中使用标签不起作用

Jquery,当哈希值在 url 中时激活脚本

javascript - 什么是 jQuery thickbox 的最佳替代品

Jquery元素+类选择器性能

javascript - 使用打印媒体 CSS 删除页眉和页脚