我有几组链接,例如:
<a href="http://google.com/b">http://google.com/b</a>
<a href="http://google.com/a">http://google.com/a</a>
<a href="http://stackoverflow.com/g">http://stackoverflow.com/g</a>
<a href="http://google.com/c">http://google.com/c</a>
<a href="http://stackoverflow.com/a">http://stackoverflow.com/a</a>
<a href="http://en.wikipedia.org/c">http://en.wikipedia.org/c</a>
<a href="http://en.wikipedia.org/a">http://en.wikipedia.org/a</a>
<a href="http://en.wikipedia.org/b">http://en.wikipedia.org/b</a>
我需要对google.com链接和wikipedia.org链接进行排序,并保持其位置,但我的问题不在于排序。关于元素组迭代的问题。对于我的例子,它将是:
$("a[href*='google.com'], a[href*='en.wikipedia.org']").each(function(){
// I need in $(this) google.com links in first iteration, and wikipedia.org links in second
});
有没有本地方法可以做到这一点?
PS包装()是不可能的,我不想做任何additional functions。
答案 0 :(得分:2)
您可以改用以下内容:
$('a[href*="google.com"]').add('a[href*="en.wikipedia.org"]').each(...);
有关示例,请参阅此jsFiddle。
答案 1 :(得分:2)
如果您只是尝试按域分组处理它们,则可以迭代域并查找相关元素:
$.each(['google.com', 'en.wikipedia.org'], function (_, domain) {
var links = $('a[href*="' + domain + '"]');
// 1st round will have `google.com` links, 2nd `en.wikipedia.org`
});
然后您可以使用.wrapAll()
将每个集合包装在一个元素中:
links.wrapAll('<div>');
<div>
<a href="http://google.com/b">http://google.com/b</a>
<a href="http://google.com/a">http://google.com/a</a>
<a href="http://google.com/c">http://google.com/c</a>
</div>
<a href="http://stackoverflow.com/g">http://stackoverflow.com/g</a>
<a href="http://stackoverflow.com/a">http://stackoverflow.com/a</a>
<div>
<a href="http://en.wikipedia.org/c">http://en.wikipedia.org/c</a>
<a href="http://en.wikipedia.org/a">http://en.wikipedia.org/a</a>
<a href="http://en.wikipedia.org/b">http://en.wikipedia.org/b</a>
</div>
答案 2 :(得分:0)