gpt4 book ai didi

javascript - 尝试更改 onchange 中的所有数字 - onchange.replace 不起作用?

转载 作者:行者123 更新时间:2023-12-02 19:53:40 26 4
gpt4 key购买 nike

我有一个使用的 xsl 页面

 <xsl:variable name="pos" select="Position()"/> 

在 onchange 事件中

onchange="updateDropdown({$pos});someElement_{$pos}.value = {$pos}";

当在页面 p=load 上评估时,这将被读取为

onchange="updateDropdown(1);someElement_1.value = 1";
onchange="updateDropdown(2);someElement_2.value = 2";
onchange="updateDropdown(3);someElement_3.value = 3";

当我使用一个将整个第一行复制到底部的按钮添加一行到底部时,它必须遍历并更新这些数字,因为它没有被处理

我愿意

lastRowEl = rowEls[rowEls.length-1];

然后

lastRowEl.id = "element_" + rowEls.length
lastRowEl.value = "";

最后,

lastRowEl.onchange = lastRowEl.onchange.replace(/\d/g, rowEls.length)

id 更改为 element_4值被修改为空白

但是 onchange.replace 不起作用,所以 onchange 仍然是

onchange="updateDropdown(1);someElement_1.value = 1";

代替

onchange="updateDropdown(4);someElement_4.value = 4";

如何替换 onchange 函数中的所有数字并使用最后一行元素修改的数字重置 onchange 函数?

谢谢

最佳答案

这看起来有点奇怪,我想知道它为什么有效,因为 lastRowEl.onchange 返回的值很可能是一个函数而不是字符串。您的平台上似乎发生了一些自动 toString() 调用(当我在 Safari 中测试时不起作用)。但是,结果很可能是多行字符串,您可能需要使用多行正则表达式,例如/\d/mg.

即使这有效,它也相当难看。定义一个函数来执行您放入处理程序中的所有调用怎么样?

function onchangeHandler(index) {
updateDropdown(index);
window["someElement_" + index].value = index;
}

然后您可以在 HTML 中分配这些处理函数

< ... onchange="onchangeHandler(1);" .... />

并用 Javascript 更新它们

(function() {
var index = rowEls.length;
lastRowEl.onchange = function() {onchangeHandler(index);};
})();

请注意,根据您周围的代码,赋值周围的闭包可能不是必需的。不过,您很可能需要显式索引变量定义。

关于javascript - 尝试更改 onchange 中的所有数字 - onchange.replace 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8941729/

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