addClass 的对象格式,使用 jquery 添加文本并删除 li
format of object for addClass, add text and remove li using jquery
我正在使用对象进行addClass,附加文本并删除li。我想要的是我的对象格式,我的函数很好用,或者可以用更好的代码来完成。我也使用逗号分隔类和文本。在我的第二个对象声明中,我没有附加文本,所以我想知道哪个键不包含文本属性。最后一件事是它没有删除最后一个李。
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)
});
这里的小提琴
您可以像这样保存拆分结果
$.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])
}
})
相关文章:
- Javascript,将文本添加到具有现有文本节点的元素中
- 选中单选框时,将文本添加到文本框中
- 为未标记的文本添加CSS样式
- 如何将表格中的文本添加到使用按钮输入的文本区域
- 有没有办法将mouseOver上的个人文本添加到完整日历中
- 改变“;onClick"这个jQuery的操作从清除输入文本改为将输入文本添加到下面的列表中
- 如何使用JavaScript将链接文本添加到电子邮件中
- 将动态验证文本添加到自定义jQuery验证规则中
- 将文本添加到每个数组元素的开头
- 单击将按钮中的文本添加到带有jQuery或JS的输入框中
- 通过按钮将不同的文本添加到文本区域-不起作用
- 如何为Fabric.js中的文本添加CSS属性
- 如何将预加载程序文本添加到jQuery Cycle 2中
- Javascript Regex exec 在向搜索文本添加属性/引号后冻结
- 如何在所有浏览器中向文本区域中的选定文本添加 标记
- jQuery将文本添加到放置在表格单元格中的图像中
- D3 垂直条形图为标签文本添加换行符
- 单击时从列表中将文本添加到文本框的方法
- 将文本添加到 D3 圆环图的中心
- 如何将非可变文本添加到javascript打印弹出窗口中