使用javascript在href中输入变量
这与这个问题(已经解决了)有关,只是为了给问题提供背景 我想做的是将我从前面代码中获得的链接应用到按钮元素中的a href中。到目前为止,我得到的是:使用javascript在href中输入变量,javascript,jquery,Javascript,Jquery,这与这个问题(已经解决了)有关,只是为了给问题提供背景 我想做的是将我从前面代码中获得的链接应用到按钮元素中的a href中。到目前为止,我得到的是: <script type="text/javascript"> var newestLink = ""; window.setTimeout(function(){ var newLink = $('.link:last').attr("href"); newestLink = newLink; }, 1500);
<script type="text/javascript">
var newestLink = "";
window.setTimeout(function(){
var newLink = $('.link:last').attr("href");
newestLink = newLink;
}, 1500);
window.setTimeout(function(){
alert(newestLink);
document.getElementById('#redButton').onClick = function() {
document.getElementById('#redButton').href=newestLink;
}
}, 3000);
</script>
var newestLink=“”;
setTimeout(函数(){
var newLink=$('.link:last').attr(“href”);
newestLink=newLink;
}, 1500);
setTimeout(函数(){
警报(newestLink);
document.getElementById('#redButton').onClick=function(){
document.getElementById('#redButton')。href=newestLink;
}
}, 3000);
警报
代码只是为了检查我的值是否正确。当我使用此代码时,控制台返回一个错误uncaughttypeerror:cannotsetproperty'onClick'of null(匿名函数)
我似乎不明白代码哪里出错了。我下面就讲。你把javascript和jQuery语法搞混了。Javascript是
document.getElementById('redButton')
而jQuery是$('#redButton')
您应该使用jQuery或基本Javascript选择器样式。如果你把它们混在一起,就会出现这种打字错误
jQuery风格:
<script type="text/javascript">
var newestLink = "";
window.setTimeout(function(){
var newLink = $('.link:last').attr("href");
newestLink = newLink;
}, 1500);
window.setTimeout(function(){
alert(newestLink);
var node = $('#redButton');
node.click(function() {
node.attr('href', newestLink);
});
}, 3000);
</script>
var newestLink=“”;
setTimeout(函数(){
var newLink=$('.link:last').attr(“href”);
newestLink=newLink;
}, 1500);
setTimeout(函数(){
警报(newestLink);
变量节点=$(“#红色按钮”);
node.click(函数(){
node.attr('href',newestLink);
});
}, 3000);
执行此操作的更好方法是使用一些严重的超时,即在DOM就绪后立即使用ready事件:
<script type="text/javascript">
$(function(){ // execute this code on ready
var newLink = $('.link:last').attr('href');
var node = $('#redButton');
node.click(function() {
node.attr('href', newestLink);
});
});
</script>
$(function(){//在就绪时执行此代码
var newLink=$('.link:last').attr('href');
变量节点=$(“#红色按钮”);
node.click(函数(){
node.attr('href',newestLink);
});
});
请复制n粘贴到下面的代码在chrome和mozilla中都能正常工作,不会出现控制台错误
<script type="text/javascript">
var newestLink = "";
window.setTimeout(function(){
var newLink = $('.link:last').attr("href");
newestLink = newLink;
}, 1500);
window.setTimeout(function(){
alert(newestLink);
$("#redButton").click(function(e) {
$(this).prop("href",newestLink);
});
}, 3000);
</script>
var newestLink=“”;
setTimeout(函数(){
var newLink=$('.link:last').attr(“href”);
newestLink=newLink;
}, 1500);
setTimeout(函数(){
警报(newestLink);
$(“#红色按钮”)。单击(功能(e){
$(this.prop(“href”,newestLink);
});
}, 3000);
取出“开启”红色按钮。谢谢您的建议。新手的错误。谢谢你的代码!我已经用过了,并且做了一些调整。我没有使用DOM ready函数,因为页面加载图片库需要一点时间,如果我没有弄错的话,DOM ready没有考虑图像,对吧?您可以使用$(window.load)(function(){…});而不是准备好的事件。图像可用后应触发加载。