gpt4 book ai didi

javascript - 仅 getElementsByName?

转载 作者:行者123 更新时间:2023-12-02 19:11:51 25 4
gpt4 key购买 nike

以下代码旨在更改一个字段的颜色:

<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<form></form>
<form>
<input name="thisone" />
</form>
<script language="javascript">
var bkColor = "red";
function getEvent(e){
if(window.event != null) {
return event;
}
return e;
}
function setBKColor(e){
e = getEvent(e);
var src = e.srcElement || e.target;
window.status="t";
if(src != null) {
src.style.bkColor = src.style.backgroundColor;
src.style.backgroundColor = bkColor;
}
}
function reSetBKColor(e){
e = getEvent(e);
var src = e.srcElement || e.target;
if(src != null) {
src.style.backgroundColor = src.style.bkColor;
}
}
function attachEvent(name,element,callBack) {
if (element.addEventListener) {
element.addEventListener(name, callBack,false);
} else if (element.attachEvent) {
element.attachEvent('on' + name, callBack);
}
}
function setListner(eve,func) {
var ele = document.forms[0].elements;
for(var i = 0; i <ele.length;i++) {
element = ele[i];
if (element.name) {
switch (element.name) {
case 'thisone':
attachEvent(eve,element,func);
}
}
}
}
setListner("focus",setBKColor);
setListner("blur",reSetBKColor);
</script>

但是,当改变颜色的字段之前有另一种形式时,代码将停止工作。因此,目前 HTML 代码可能如下所示,以弥补不便:

<name="thisone">
<form></form>
<form></form>

现在这段代码可以工作了。

但是如何让JS部分独立于<form> ,并且仅依赖于<Name>文本字段?

最佳答案

向您的表单添加一个 ID 并使用它来引用它

function setListner(eve,func) {
var ele = document.getElementById("#formID").elements;

在 DOM 中使用表单索引是一种不可靠的访问其元素的方式

关于javascript - 仅 getElementsByName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13620759/

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