【问题标题】:jQuery Span Text not changing [duplicate]jQuery Span 文本没有改变 [重复]
【发布时间】:2020-06-08 04:46:05
【问题描述】:

我的问题是,如果我在浏览器控制台中执行此代码,它可以正常工作,跨度会根据给定的 URL 参数等进行更改。但是如果我只是加载页面,我会得到相应的控制台日志,但没有跨度被填充。有人看到问题了吗?

附:加载窗口是一个绝望的举动,所以不要评判我,它是可选的。

编辑:我可能应该提到我来自 Python 编程,所以我可能不理解与 JS 相关的某些事情...... sry

jQuery 代码:

function setSlogan(sloganText) {
   console.log(sloganText);
   $("#productLeadLogin").text(sloganText);
   $("#productLeadRegistration").text(sloganText);
}



const params = new URLSearchParams(window.location.search);

function chooseSlogan (){
    switch (params.get("product")) {
        case "...":
            console.log("Got ...");
            slogan = "to the ... services";
            console.log(slogan);
            setSlogan(slogan);
            break;
        default:
            console.log("defaulting");
            slogan = "to all your default services";
            console.log(slogan);
            setSlogan(slogan);
            break;
    }
}

$(window).on("load", chooseSlogan()); // it's called desperation

要更改的跨度之一:

<h6 class="font-weight-light">Sign In here to get access <span id="productLeadLogin"></span>.</h6>

【问题讨论】:

  • 您需要将引用作为.on中的回调参数传递给您的函数对象,但您是在那个地方直接调用它。 foo()foo 的区别
  • 应该是:$(window).on("load", chooseSlogan);
  • @freedomn-m 您能否将其发布为答案,以便我接受? 在加载时传递函数有效!谢谢!

标签: javascript jquery html css-selectors


【解决方案1】:
$(window).on("load", chooseSlogan());

您需要将 reference 作为 .on 中的回调参数传递给您的函数对象,但您是在该位置直接调用它。 foo()foo 的区别。

所以这部分需要

 $(window).on("load", chooseSlogan);

【讨论】:

  • 谢谢,成功了!正如我可能提到的,这也适用于$(document).ready(foo);
猜你喜欢
  • 2021-10-24
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
  • 2011-11-29
  • 2014-11-01
  • 2023-04-06
  • 2015-07-02
  • 1970-01-01
相关资源
最近更新 更多