gpt4 book ai didi

JavaScript 通过另一个函数将对象传递给函数

转载 作者:行者123 更新时间:2023-12-02 19:10:09 24 4
gpt4 key购买 nike

让我先说这不是我想要的函数编码方式(内联和劫持),但我必须解决第三方应用程序配置界面,并以更改源代码作为最终选择。

所以我有一个调用 onclick 函数的图像:

 <img src="images/button_closed.gif" id="img100023" border="0" 
onclick="OnNodeImageClick(event, this)" href="theurl.cfm">

该函数接受 vars 事件并获取 URL:

 function OnNodeImageClick(evt, clickedImage) {
var href = clickedImage.getAttribute("href");
...

我需要在共享原始 ID 号的单独元素上执行完全相同的逻辑:

 <span id="node100023" >External Links</span>

我尝试过的是这样的html:

 <span id="node100023" 
onclick="javascript:OverwriteToTreeHandler($(this).attr('id'))">
External Links</span>

这就是我的功能:

 function OverwriteToTreeHandler(nodeID){
var clickedItem = 'img'+nodeID.replace(/[^0-9]/g, '');
//tried $('body').find( clickedItem ) didnt work
OnNodeImageClick(event, clickedItem );
}

但我收到以下错误:

Uncaught TypeError: Object img100023 has no method 'getAttribute'

但是,通过在 HTML 中静态分配标识符。

我尝试过的是这个html,我得到了我想要的结果:

 <span id="node100023" 
onclick="javascript:OnNodeImageClick(event, img100023)">
External Links</span>

我认为这与参数有关,事实上,当我尝试动态获取元素时,它没有将其注册为对象,但我没有连接这是如何完成的。

最佳答案

OnNodeImageClick 需要一个 DOM 元素 - 您正在传递一个字符串。试试这个:

function OverwriteToTreeHandler(nodeID) {
var clickedItem = document.getElementById('img'+nodeID.replace(/[^0-9]/g, ''));

OnNodeImageClick(event, clickedItem);
}

此外,当您调用 OverwriteToTreeHandler< 时,this.id$(this).attr('id') 更好(性能和清晰度方面)/.

关于JavaScript 通过另一个函数将对象传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13845591/

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