Javascript 为每个实例更改jquery变量它';在一页上使用
我正在设置一个页面,该页面具有指向不同文档的多个链接。由于链接的名称与它们链接到的文档相匹配,我想我应该编写一个脚本,该脚本采用带下划线的任何内容的内部html,并在其周围生成一个链接标记,并在链接中输入每个特定的链接名称 我编写的脚本运行良好,只是它只运行一次,并使用一个相同的链接更新所有链接。有没有一种方法可以让我针对每个实例分别进行更改 对不起,如果我的解释被破坏了 这是我目前的代码:Javascript 为每个实例更改jquery变量它';在一页上使用,javascript,jquery,Javascript,Jquery,我正在设置一个页面,该页面具有指向不同文档的多个链接。由于链接的名称与它们链接到的文档相匹配,我想我应该编写一个脚本,该脚本采用带下划线的任何内容的内部html,并在其周围生成一个链接标记,并在链接中输入每个特定的链接名称 我编写的脚本运行良好,只是它只运行一次,并使用一个相同的链接更新所有链接。有没有一种方法可以让我针对每个实例分别进行更改 对不起,如果我的解释被破坏了 这是我目前的代码: <u>Link1</u> <u>Link2</u> &
<u>Link1</u>
<u>Link2</u>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
innerU = $("u").html();
$("u").html("<a href=mywebsite.com/" + innerU + ".pdf>" + innerU + "</a>");
</script>
Link1
链接2
innerU=$(“u”).html();
$(“u”).html(“”);
您可以使用jQuery对页面中的每个
元素应用所需的转换。大概是这样的:
$("u").each(function() {
var innerU = $(this).html();
$(this).html("<a href='mywebsite.com/" + innerU + ".pdf'>" + innerU + "</a>");
});
$(“u”)。每个(函数(){
var innerU=$(this.html();
$(this.html(“”);
});
编辑:在href值周围添加引号以生成有效的HTML。感谢您的注意。您可以使用jQuery对页面中的每个
元素应用所需的转换。大概是这样的:
$("u").each(function() {
var innerU = $(this).html();
$(this).html("<a href='mywebsite.com/" + innerU + ".pdf'>" + innerU + "</a>");
});
$(“u”)。每个(函数(){
var innerU=$(this.html();
$(this.html(“”);
});
编辑:在href值周围添加引号以生成有效的HTML。感谢您的关注。这应该可以解决问题
$("u").each(function () {
var innerU = $(this).html();
$(this).html("<a href=mywebsite.com/" + innerU + ".pdf>" + innerU + "</a>");
});
$(“u”)。每个(函数(){
var innerU=$(this.html();
$(this.html(“”);
});
虽然,你的代码有很多“错误”。例如,使用
标记生成链接?为什么不直接使用anhors并动态设置其href属性,如下所示:
<a href="#" class='coollink'>Link1</a>
<a href="#" class='coollink'>Link2</a>
<script>
$("a.coollink").each(function () {
$(this).attr("href", "//mywebsite.com/" + $(this).html() + ".pdf");
});
</script>
$(“a.coollink”)。每个(函数(){
$(this.attr(“href”,“//mywebsite.com/”+$(this.html()+”.pdf”);
});
这应该可以做到
$("u").each(function () {
var innerU = $(this).html();
$(this).html("<a href=mywebsite.com/" + innerU + ".pdf>" + innerU + "</a>");
});
$(“u”)。每个(函数(){
var innerU=$(this.html();
$(this.html(“”);
});
虽然,你的代码有很多“错误”。例如,使用
标记生成链接?为什么不直接使用anhors并动态设置其href属性,如下所示:
<a href="#" class='coollink'>Link1</a>
<a href="#" class='coollink'>Link2</a>
<script>
$("a.coollink").each(function () {
$(this).attr("href", "//mywebsite.com/" + $(this).html() + ".pdf");
});
</script>
$(“a.coollink”)。每个(函数(){
$(this.attr(“href”,“//mywebsite.com/”+$(this.html()+”.pdf”);
});
试试这个:
(function() { // create a closure to avoid leaking variables
var tags = document.getElementsByTagName("u"), l = tags.length, i, t, a;
for( i=0; i<l; i++) {
a = document.createElement('a');
a.href = "http://mywebsite.com/"+tags[i].firstChild.nodeValue+".pdf";
a.appendChild(tags[i].firstChild);
tags[i].appendChild(a);
}
})();
(function(){//创建一个闭包以避免变量泄漏
var tags=document.getElementsByTagName(“u”),l=tags.length,i,t,a;
对于(i=0;i请尝试以下方法:
(function() { // create a closure to avoid leaking variables
var tags = document.getElementsByTagName("u"), l = tags.length, i, t, a;
for( i=0; i<l; i++) {
a = document.createElement('a');
a.href = "http://mywebsite.com/"+tags[i].firstChild.nodeValue+".pdf";
a.appendChild(tags[i].firstChild);
tags[i].appendChild(a);
}
})();
(function(){//创建一个闭包以避免变量泄漏
var tags=document.getElementsByTagName(“u”),l=tags.length,i,t,a;
对于(i=0;i可以使用JQuery方法
$('u').each(function(){
innerU = $(this).html();
$(this).html("<a href=mywebsite.com/" + innerU + ".pdf>" + innerU + "</a>");
});
$('u')。每个(函数(){
innerU=$(this.html();
$(this.html(“”);
});
您可以使用JQuery的方法
$('u').each(function(){
innerU = $(this).html();
$(this).html("<a href=mywebsite.com/" + innerU + ".pdf>" + innerU + "</a>");
});
$('u')。每个(函数(){
innerU=$(this.html();
$(this.html(“”);
});
在发布问题之前,您应该先用谷歌搜索它-每个的jquery的第一个链接将引导您从哪里开始。@KonradGadzina如果您阅读了他的代码,我想他不知道jquery的。each()
method。如果你不知道它叫什么,你就不能搜索它。@Robinbanbaalen我不是说他知道这个方法,那太愚蠢了。^^如果你读了这个问题的标题,你会发现他知道如何形成一个好问题,所以这只是从问题中获取关键字和谷歌搜索。我在fi中引用的短语rst评论取自问题的标题。我知道有时你甚至不知道要搜索什么,但这个标题告诉我现在不是这样。无意冒犯,我只是认为人们在发布问题之前应该更加努力,学习如何搜索网页。@KonradGadzina先生,你的观点很好。你应该用谷歌搜索它在发布问题之前-每个
的jquery的第一个链接将引导您从哪里开始。@KonradGadzina如果您阅读了他的代码,我想他不知道jquery的。each()
method。如果你不知道它叫什么,你就不能搜索它。@Robinbanbaalen我不是说他知道这个方法,那太愚蠢了。^^如果你读了这个问题的标题,你会发现他知道如何形成一个好问题,所以这只是从问题中获取关键字和谷歌搜索。我在fi中引用的短语rst评论取自问题的标题。我知道有时你甚至不知道要搜索什么,但这个标题告诉我现在不是这样。无意冒犯,我只是认为人们在发布问题之前应该更加努力,学习如何搜索网页。@KonradGadzina你说得很好,先生。太棒了,谢谢你的支持帮助!@user1524879>没问题,别忘了接受答案。特别是Kolink的答案,它更好。生成无效的HTML。@Kolink>很好的捕获,我专注于显示每个,但没有正确检查生成的HTMLAwesome,谢谢你的帮助!@user1524879>没问题,别忘了接受答案。特别是Kolink的answer哪个更好。生成无效的HTML。@Kolink>Nice catch,我专注于显示每个,没有正确检查生成的HTMLCurious为什么你说最好通过DOM方法插入而不是使用innerHTML…因为必须解析、处理和插入innerHTML
。它会破坏对旧HTML的任何引用节点,包括(尤其是)事件侦听器。它在这里并不真正适用,但通常最好避免使用innerHTM
。回答得好,我希望看到性能说明它“快了一百倍”不过,这是一个大胆的想法claim@BenjaminGruenbaum--不久前有人已经创建了一个…@natlee75谢谢,我没有看到,我只是好奇为什么你说最好通过DOM方法插入,而不是使用innerHTML…因为必须解析、处理和插入innerHTML