我的脚本下面有以下片段
.then(function() {debugger})
有时,同一范围a的第2个和第3个实例会添加到网页中。所以我的脚本也复制了那些实例。我需要一种方法来a)找到第一个类名或b)删除重复项。下面是.franchise_0001重复3次的示例。和两次0002。我需要找到所有,然后删除重复,我假设,但不知道如何做到这一点。
那么有没有办法找到所有的跨度a,那么类是同样的删除吗?
$(this).find("span a").each(function () {
target.append("<tr><td>" + $(this)[0].outerHTML + "</td><td><a href='#'>TEXT</a></td></tr>");
答案 0 :(得分:2)
您可以尝试使用像
这样的完成标记var clazz = {};
$(this).find("span a").each(function () {
var className = this.className;
if (clazz[className]) {
return
}
clazz[className] = true;
target.append("<tr><td>" + this.outerHTML + "</td><td><a href='#'>TEXT</a></td></tr>");
})
答案 1 :(得分:1)
尝试通过在span a
内使用span a
className
填充数组来过滤.map()
,将.each()
链接到.map()
返回的唯一元素数组
var res = [];
var arr = $("span a").map(function(i, el) {
return $.inArray(el.className, res) === -1
? res.push(el.className)
&& $("." + el.className + ":first")[0]
: null;
})
.each(function() {
target.append("<tr><td>"
+ $(this)[0].outerHTML
+ "</td><td><a href='#'>TEXT</a></td></tr>")
});
var res = [];
var target = $("table tbody");
var arr = $("span a").map(function(i, el) {
return $.inArray(el.className, res) === -1
? res.push(el.className)
&& $("." + el.className + ":first")[0]
: null;
})
.each(function() {
target.append("<tr><td>"
+ $(this)[0].outerHTML
+ "</td><td><a href='#'>TEXT</a></td></tr>")
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tbody></tbody>
</table>
<span><a class="franchise_0001"></a></span>
<span><a class="franchise_0002"></a></span>
<span><a class="franchise_0003"></a></span>
<span><a class="franchise_0004"></a></span>
<span><a class="franchise_0005"></a></span>
<span><a class="franchise_0006"></a></span>
<span><a class="franchise_0007"></a></span>
<span><a class="franchise_0008"></a></span>
<span><a class="franchise_0009"></a></span>
<span><a class="franchise_0001"></a></span>
<span><a class="franchise_0001"></a></span>
<span><a class="franchise_0002"></a></span>
&#13;
答案 2 :(得分:0)
我相信使用eq(0)代替每个人都会这样做。
$(this).find("span a").eq(0)(function () {
target.append("<tr><td>" + $(this)[0].outerHTML + "</td><td><a href='#'>TEXT</a></td></tr>");