javascript - 通过特定的 data-gt 删除 li 子项

标签 javascript html

好的,我有这个 HTML 代码:

<ul>    
    <li data-gt="{'alert_id':11111,'type':'hello'}"></li>
    <li data-gt="{'alert_id':11111,'type':'bye'}"></li>
    <li data-gt="{'alert_id':11111,'type':'hello'}"></li>
    <li data-gt="{'alert_id':11111,'type':'bye'}"></li>
</ul>

我想删除所有包含 "type":"hello"li 标签。我想在 var 中计算所有已删除的标签。 PS:我无法更改 HTML 代码。

我们到处寻找,但失败了,如果可能的话在 JavaScript 中。 (不是 jQuery)。感谢您抽出时间。

最佳答案

您需要更正 HTML 标记,然后过滤节点并解析 JSON:

var elems = document.querySelectorAll('[data-gt]');
var deletedNodes = 0;
for (var i = 0; i < elems.length; i++) {
    var self = elems[i];
    var attr = self.getAttribute('data-gt');
    var parseAttr = JSON.parse(attr);
    if (parseAttr.type === 'hello') {
        self.parentNode.removeChild(self);
        deletedNodes++;
    }
}

// log deleted nodes
console.log(deletedNodes); // 2

http://jsfiddle.net/toddmotto/tT8HW/

此代码解析您的数据属性,然后检查对象值。这将更加准确和可扩展。

关于javascript - 通过特定的 data-gt 删除 li 子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21235356/

相关文章:

javascript - 我可以使用 Javascript 检测 XHTML 解析错误吗?

javascript - Alfresco Aikau 使用现有门票登录

javascript - 订阅具有自引用属性的 observable

javascript - 如何将 Google map 与 Marko.js 和 Lasso.js 结合使用并将全局变量链接到其他模板

javascript - 在 head 标签中动态添加一个 <link rel ="canonical"

javascript - 如何向整个 HTML 添加或应用 CSS 类

html - 如何右对齐输入字段并左对齐标签?

javascript - 调试一些作者主要做axios请求的功能有困难

html - 带有侧边栏的 Flexbox 布局(无法​​打印整个页面)

javascript - .Each function JavaScript 在 XML 中迭代两次