林发现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循环?一。每个()函数?或$这个符号? 他们会所有的工作?

有帮助吗?

解决方案

$('a').text()

将返回每个锚节点文本值的组合。我只是做了它的计算器,它给了我:

  

“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 );
});

额外的好处是,每个功能在它自己的执行上下文中运行,在每次定义变量,每一个“文本”宣称是唯一的那个函数体所以有一个的很多的更多的内部控制。每个

关于香草环的交易 - 我会用jQuery.prototype.each过它,因为它是一个更高层次的功能,你就必须给一个变量分配到节点列表的长度,从0开始,停止在长度(或如果顺序并不重要,执行反向while循环)..这只是导致更多的工作比必要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top