Javascript addClass的对象格式,使用jquery添加文本和删除li
我将对象用于addClass、追加文本和删除li。我想知道的是我的对象格式和我的函数是好去,或者它可以做更好的代码。我还使用逗号分隔类和文本。在我的第二个对象声明中,我没有附加文本,所以我想知道哪个键不包含text属性。最后一件事是,它不是删除最后一个李 jQueryJavascript addClass的对象格式,使用jquery添加文本和删除li,javascript,jquery,Javascript,Jquery,我将对象用于addClass、追加文本和删除li。我想知道的是我的对象格式和我的函数是好去,或者它可以做更好的代码。我还使用逗号分隔类和文本。在我的第二个对象声明中,我没有附加文本,所以我想知道哪个键不包含text属性。最后一件事是,它不是删除最后一个李 jQuery function updateli(x) { $.each(x, function (val, key) { if (Array.isArray(key)) { $.each(k
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>
- 撤除
- 撤除
您可以这样保存分割结果
$.each(x, function (val, key) {
if (Array.isArray(key)) {
$.each(key, function (i, val) {
$('li').eq(val).remove()
})
}
var keys = key.split(',');
var $li = $('li').eq(val - 1).addClass(keys[0]);
if(keys.length > 1){
$li.text(keys[1])
}
})
您可以使用对象,而不是“,”分离然后拆分。。。 删除的问题是,先删除[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)
});
这里你的问题我不清楚,你能重新措辞吗?告诉我,你想达到什么目的。我想知道哪个键不包含第二个属性。比如3:'bBlack'只包含一个属性,2:'bgreen,hiii'包含两个属性我们也可以在键中循环吗?我想,你把简单的事情弄得更复杂了,你能告诉我你的
li
和对象的确切目标是什么吗?