gpt4 book ai didi

javascript - 在 Javascript 中引用另一个包含 'this' 引用的函数

转载 作者:行者123 更新时间:2023-11-30 17:59:45 25 4
gpt4 key购买 nike

我的一位同事编写了各种 Javsascript 函数,这些函数根据对各种输入的回答显示某些 HTML 元素。这是其中一个功能的示例,它们都非常相似。

function addSponsership(sponser) {
if (sponser.value == "N") {
document.getElementById('nameofperson').style.display = "block";
document.getElementById('nameofpersonvalue').style.display = "block";
document.getElementById('address').style.display = "block";
document.getElementById('addressvalue').style.display = "block";
document.getElementById('postcode').style.display = "block";
document.getElementById('postcodevalue').style.display = "block";
document.getElementById('telephone').style.display = "block";
document.getElementById('telephonevalue').style.display = "block";
document.getElementById('fax').style.display = "block";
document.getElementById('faxvalue').style.display = "block";
document.getElementById('emailaddress').style.display = "block";
}

if (sponser.value == "NH") {
document.getElementById('nameofperson').style.display = "none";
document.getElementById('nameofpersonvalue').style.display = "none";
document.getElementById('address').style.display = "none";
document.getElementById('th1').style.display = "none";
document.getElementById('th8').style.display = "table-row";
}

if (sponser.value == "Y") {
document.getElementById('nameofperson').style.display = "none";
document.getElementById('nameofpersonvalue').style.display = "none";
document.getElementById('address').style.display = "none";
}
}

该函数是从 HTML 调用的,带有一个 onclick 事件,如下所示:

<input type="radio" name="IPQ_FUND1" id="IPQ_FUND1" value="Y" checked="checked" onclick="addSponsership(this);"/>

我现在想使用 body 元素上的 onload 事件来调用所有这些函数。但是,我不确定该怎么做。示例:

function callAllOtherFunctions()
{
addSponsership(sponser)
addSponsership2(sponser)
addSponsership3(sponser)
etc...
}

问题是我找不到一种方法来引用需要检查其值的特定元素。理想情况下,我需要在不编辑同事编写的原始函数的情况下找到解决方案。

我试图通过创建另一个看起来像这样的函数来单独完成它:

function addSponsershipLoad(inputID){
sponser = document.getElementById(inputID);
addSponsership(sponser);
}

并编辑 body 标签,使其看起来像这样:

<body onload="addSponserShipLoad('IPQ_FUND1');">

但是尽管控制台没有显示任何错误,但这并没有奏效。

所以,我知道我可能很厚,解决方案很简单,但如果可以的话请帮忙。

最佳答案

您不必将所有内容都放入变量中:

addSponsership(document.getElementById('IPQ_FUND1'));
addSponsership2(document.getElementById('IPQ_FUND2'));
// ...

关于javascript - 在 Javascript 中引用另一个包含 'this' 引用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com