通过div和显示文本jQuery循环
我有以下结构如下。使用jQuery我需要获取每个链接并在其下面显示href。我可以使用一些子选择编写代码为每个但我只是想写的东西,它会为所有的div的“关口”类,并且将允许未来增加...通过div和显示文本jQuery循环
<div class="col">
<a href="http://google.com">Google</a>
</div>
<div class="col">
<a href="http://yahoo.com">Yahoo!</a>
</div>
<div class="col">
<a href="http://facebook.com">Facebook</a>
</div>
<div class="col">
<a href="http://twitter.com">Twitter</a>
</div>
上述应变成...
<div class="col">
<a href="http://google.com">Google</a>
<span>http://google.com</span>
</div>
<div class="col">
<a href="http://yahoo.com">Yahoo!</a>
<span>http://yahoo.com</span>
</div>
<div class="col">
<a href="http://facebook.com">Facebook</a>
<span>http://facebook.com</span>
</div>
<div class="col">
<a href="http://twitter.com">Twitter</a>
<span>http://twitter.com</span>
</div>
任何帮助表示赞赏!
这意味你没有尝试过在所有写代码的。你应该真的能够自己做到这一点。
$('.col a').each(function() {
var $this = $(this);
$("<span>"+$this.attr('href')+"</span>").insertAfter($this);
});
这应该这样做。你可以使用每个。阅读更多关于选择器。
$(document).ready(function(){
$("div.col").each(function(){
var hreftext = $(this).find("a").attr("href");
$(this).append("<span>" + hreftext + "</span>");
});
});
$('div.col').each(function(){
alert($(this).find("a").attr("href"));
//figure out the rest yourself
});
像这样的工作:
$('div.col').each(function() {
var $a = $(this).find('a:first'),
href = $a.attr('href');
$('<span>').text(href).insertAfter($a);
});
$('.col > a').after(function() {
return $('<span>', {text:this.href});
});
非常简化的解决方案,我喜欢它。 – 2012-03-01 18:57:24
**演示:** http://jsfiddle.net/HffG6/ – 2012-03-01 19:00:32
$(".col").each(function(){
var v= $(this).find("a");
$("<span/>",{text:v.attr('href')}).insertAfter(v);
});
这可以用一个基本的jQuery的 '追加()' 来完成
$('div.col').each(function(){
var href = $(this).children('a:first').attr('href');
$(this).append('<span>' + href + '</span>');
});
是的,我同意每个解决方案。但是如果你缓存你的选择器会更好。
否则每次jQuery必须潜入DOM。
如果它的大名单可能会影响性能。
var col = $('.col a');
col.each(function(){
var val = $(this).text();
$(this).append("<span>"+val);
})
更新
有从我的一部分,解释问题的错误。更新代码&链接。
var col = $('.col a');
col.each(function(){
var val = $(this).attr('href');
$(this).after("<span>"+val);
})
感谢@am不是我什么
*“否则每次jQuery都要潜入DOM ......”*这是不对的。如果您要重复使用'.col a'选项,情况就是如此。如果你只使用它一次,那么jQuery将只做一个DOM选择。 – 2012-03-01 19:29:40
哦,对不起..那句话是一个错误。请阅读 - “但是如果你打算在其他地方使用它,最好是缓存你的选择器。”谢谢 - @amnotiam – 2012-03-01 19:41:38
负面标记:(? – 2012-03-02 03:30:56
甚至不知道从哪里begin..If我店里的.COL一个“HREF到一个变量,它会被每个被覆盖..在一段时间内没有做过这样的事情 – stewart715 2012-03-01 18:48:57