【问题标题】:Putting in a variable in href using javascript使用javascript在href中放入一个变量
【发布时间】:2015-04-18 05:30:09
【问题描述】:

这与这个问题有关(已解决):Previous Problem:Solved,只是为了给出问题的上下文。

我想要做的是将我从前面的代码中获得的链接应用到按钮元素中的 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>

alert 代码只是为了检查我的值是否正确。当我使用这段代码时,控制台返回错误Uncaught TypeError: Cannot set property 'onClick' of null (anonymous function)

我似乎无法理解代码哪里出错了。我正在关注this advise

【问题讨论】:

  • 去掉redButton上的#。

标签: javascript jquery


【解决方案1】:

您混淆了 javascript 和 jQuery 语法。 Javascript 是 document.getElementById('redButton'),jQuery 是 $('#redButton')

【讨论】:

  • 感谢您的建议。菜鸟的错误。
【解决方案2】:

您应该使用 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>

比使用一些讨厌的超时更好的方法是使用在 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>

【讨论】:

  • 感谢您的精彩代码!我已经使用它并对其进行了一些调整。我没有使用 DOM 就绪功能,因为页面加载了一个图片库,这需要一些时间,如果我没记错的话,DOM 就绪并没有考虑到图像,对吧?
  • 你可以使用 $(window).load(function(){ ... });而不是 ready 事件。图像可用后应触发加载。
【解决方案3】:

请复制并粘贴下面的代码在 chrome 和 mozilla 中都可以正常工作,而不会出现 consol 错误。

<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>

【讨论】:

    猜你喜欢
    • 2012-04-19
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    相关资源
    最近更新 更多