Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在href中输入变量_Javascript_Jquery - Fatal编程技术网

使用javascript在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);

这与这个问题(已经解决了)有关,只是为了给问题提供背景

我想做的是将我从前面代码中获得的链接应用到按钮元素中的a href中。到目前为止,我得到的是:

<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(){…});而不是准备好的事件。图像可用后应触发加载。