我发现jQuery难以学习,因为似乎有很多方法可以编写同样的东西.
作为练习,我想在锚标签中取出文本并将其填充到链接href属性中.
例如
<a href="">http://www.something.com</a>
Run Code Online (Sandbox Code Playgroud)
成为
<a href="http://www.something.com">http://www.something.com</a>
Run Code Online (Sandbox Code Playgroud)
我的第一次尝试是
<script type="text/javascript">
$(document).ready(function() {
var text = $('a').text();
$('a').attr( 'href', text );
});
</script>
Run Code Online (Sandbox Code Playgroud)
这显然不起作用,因为我需要指定为每个链接执行此操作.
我应该使用foreach循环吗?一个.each()函数?或$这种表示法?他们都会工作吗?
$('a').text()
Run Code Online (Sandbox Code Playgroud)
将返回每个锚节点文本值的组合..我只是在stackoverflow上做了它,它给了我:
"mederlogoutaboutfaqQuestionsTagsUsersBadgesUnansweredAsk QuestionJquery $本或每()来指定在timejqueryeachthiseditcloseflagchrisadd commentjqueryeachthisask自己questionjquerythiseachC++/Unix的程序员在海滨国际Ltdjobs.stackoverflow.comquestion feedaboutfaqblogpodcastprivacy policyadvertising infocontact我们留言板始终welcomestackoverflow.comserverfault.comsuperuser.commetahowtogeek.comdoctype.comcc-wikiattribution需要一个链接"
因此,您应该使用jQuery.prototype.each,以便保存对每个锚点文本的引用:
$('a').each(function() {
var text = $(this).text();
$(this).attr('href', text );
});
Run Code Online (Sandbox Code Playgroud)
额外的好处是,每个功能在它自己的执行上下文中运行,在每次定义变量,每一个"文本"宣称是唯一的那个函数体所以有很多的一个.每个里面更多的控制.
关于vanilla循环处理 - 我会使用jQuery.prototype.each,因为它是一个更高级别的函数,你必须为nodeList的长度分配一个变量并从0开始,停止在长度(或者如果顺序没有)无论做什么反向循环)..这只会导致更多的工作而不是必要的.
| 归档时间: |
|
| 查看次数: |
6108 次 |
| 最近记录: |