javascript - 查找相似的 HTML 部分

标签 javascript jquery html traversal

我有以下(简化的)HTML 代码,并希望将其拆分为类似的部分:

<input id="checkbox1"><label><br>
<input id="checkbox2"><label><br>
<input id="checkbox3"><label><br>

结果应该是 <input><label><br> 。但问题是,我需要一个防弹解决方案,例如返回 <div><p><input></p><p><label></p></div>来自以下 HTML:

<div><p><input id="checkbox1"></p><p><label></p></div>
<div><p><input id="checkbox2"></p><p><label></p></div>
<div><p><input id="checkbox3"></p><p><label></p></div>

知道如何在 JavaScript/jQuery 中找到这样的伪父元素吗?

<小时/>

喜欢Rory McCrossan弄清楚了,这确实是用于模板系统的。用户在此模板中定义一行,例如 <input id="checkbox1"><label><br>然后在屏幕上显示 x 次。我的 JS 代码中需要这个模板,但遗憾的是无法直接访问用户模板,因此我的想法是找出哪些 HTML 部分看起来相似,然后将它们拆分以恢复模板。

最佳答案

作为部分解决方案,您可以考虑识别输入标签对最接近的共同祖先,并将其用作重复元素:

var collection = $('');
$('input').each(function() {
    collection = collection
        .add($(this)
             .parents(':has(label)')
             .filter(function() {
                 return $(this).siblings().length == $(this).siblings(this.tagName).length;
             }));
});
console.log(collection);

这预设每个标签输入对都有一个共同的父元素,因此不适用于您的第一种情况。

关于javascript - 查找相似的 HTML 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13857916/

相关文章:

javascript - 在 jQuery 中复制下拉列表 "multiple select"

javascript - 使用同一对象的其他属性初始化对象属性

javascript - 函数使用切片应用参数

jquery - 使用Django的JSONResponseMixin响应AJAX请求

javascript - 更改 iframe 内的 body bgcolor

javascript - 获取当前页面标题的 jQuery/Javascript 方法,将其与字符串匹配,将类分配给该特定元素

html - :hover CSS selector (Angular) 的意外行为

javascript - 如何获取当前选中的SELECT的参数?

javascript - slider 未定义/NaN 错误

javascript - 向 DOM 元素添加自定义数据属性