Jquery $this 或 each() 一次指定一个链接
Posted
技术标签:
【中文标题】Jquery $this 或 each() 一次指定一个链接【英文标题】:Jquery $this or each() to specify one link at a time 【发布时间】:2010-12-04 09:10:32 【问题描述】:我发现 jQuery 很难学习,因为似乎有很多方法可以编写相同的东西。
作为一个练习,我想将锚标记中的文本填充到链接 href 属性中。
例如
<a href="">http://www.something.com</a>
成为
<a href="http://www.something.com">http://www.something.com</a>
我的第一次尝试是
<script type="text/javascript">
$(document).ready(function()
var text = $('a').text();
$('a').attr( 'href', text );
);
</script>
这显然不起作用,因为我需要指定为每个链接执行此操作。
我应该使用 foreach 循环吗? .each() 函数?还是 $this 表示法? 他们都会工作吗?
【问题讨论】:
【参考方案1】:$('a').text()
将返回每个锚节点文本值的组合。我只是在 *** 上完成的,它给了我:
"mederlogoutaboutfaqQuestionsTagsUsersBadgesUnansweredAsk QuestionJquery $this 或 each() 到 指定一个链接 时间jquery每个这个编辑关闭标志克里斯添加 评论jqueryeachthis问你自己的 questionjquerythiseachC++/Unix Waterfront International 程序员 Ltdjobs.***.com问题 饲料关于常见问题博客播客隐私 政策广告信息联系方式 我们总是反馈 Welcome***.comserverfault.comsuperuser.commetahowtogeek.comdoctype.comcc-wikiattribution 必填”
因此,您应该使用 jQuery.prototype.each,这样您就可以保存对每个锚文本的引用:
$('a').each(function()
var text = $(this).text();
$(this).attr('href', text );
);
额外的好处是每个函数都在自己的执行上下文中运行,您定义的每个变量,声明的每个“文本”对于该函数体都是唯一的,因此在 .每个。
关于 vanilla 循环交易 - 我会在它上面使用 jQuery.prototype.each 因为它是一个更高级别的函数,你必须为 nodeList 的长度分配一个变量并从 0 开始,在长度处停止(或如果顺序无关紧要,请执行反向 while 循环).. 这只会导致不必要的工作。
【讨论】:
谢谢你说得很有道理,关于如何练习 jquery 的任何提示? 安装 Firebug,访问 jQuery.com 网站,打开控制台,随心所欲地进行实验。 继续练习吧!查看源代码肯定会有所帮助,因为您可以了解某些命令是如何实现的,但如果您已经熟悉 JavaScript,我建议您这样做,因为某些代码可能很难理解/跨度>以上是关于Jquery $this 或 each() 一次指定一个链接的主要内容,如果未能解决你的问题,请参考以下文章
jquery - $(this).remove() 不适用于 each() 函数
jquery中的each方法,$.each this.each $.fn.each