在javascript中切换id名称
Switching id names in javascript
使用html和javascript在棋盘上工作。我正在尝试添加一个功能,这样用户就可以翻转棋盘的视角,遇到我理解但不知道如何解决的故障。代码如下。。。。
function flipBoard(){
document.getElementById("a8").id = "h1";
document.getElementById("a7").id = "h2";
document.getElementById("a6").id = "h3";
document.getElementById("a5").id = "h4";
document.getElementById("a4").id = "h5";
document.getElementById("a3").id = "h6";
document.getElementById("a2").id = "h7";
document.getElementById("a1").id = "h8";
document.getElementById("h8").id = "a1";
document.getElementById("h7").id = "a2";
document.getElementById("h6").id = "a3";
document.getElementById("h5").id = "a4";
document.getElementById("h4").id = "a5";
document.getElementById("h3").id = "a6";
document.getElementById("h2").id = "a7";
document.getElementById("h1").id = "a8";
}
所以。。。。我以为这会很好,但发现这会在我的棋盘两侧放置半白半黑的碎片,从而对我的棋盘造成严重破坏。当然,问题是,在最初的"a1"方块被重命名为"h8"之后,现在有两个"h8)方块,在代码的末尾,它将两个方块都切换回"a1"。
我不知道如何让id名称同时切换,否则在将它们切换到所需名称之前,我必须添加大量代码,将id名称切换到第三个名称作为占位符。可能,但乏味,我觉得必须有一个更简单的方法来做到这一点。
有什么想法吗?
您可以通过在循环中以编程方式生成id值来减少当前代码的重复:
function flipBoard(){
var a, h, aVal, hVal, aEl, hEl;
for(a = 8, h = 1; a > 0; --a, ++h) {
aVal = 'a' + a;
hVal = 'h' + h;
// Store off the current values
aEl = document.getElementById(aVal);
hEl = document.getElementById(hVal);
// swap them
aEl.id = hVal;
hEl.id = aVal;
}
}
演示小提琴
保存对变量中元素的引用。例如:
function flip(){
var aEight = document.getElementById("a8"),
hOne = document.getElementById("h1");
aEight.id = "h1";
hOne.id = "a8";
}
通过将查找元素和更改其id的步骤分开,您将能够轻松地跟踪翻转的元素。
相关文章:
- document.getElementById并使用id名称
- 如何使用jQuery迭代id名称的变体(如idname1、idname2)
- FireFox-在全局作用域中由id名称引用的元素.使用w3c标准
- 如何在select标记上使用javascript获取id名称
- 如何获取 ID 名称的子字符串
- jQuery 按 ID 名称删除 img 标签不起作用
- 将 URL 的最后一个字符串与 Li 的 ID 名称进行比较
- 按 id 名称检查元素是否具有子节点
- 如何检索元素的 ID 名称
- 如何在按键事件中使用 ID 名称
- 使用带有部分ID名称的document.getElementById
- 如何根据特定链接的id/名称选择并自动点击该链接
- 如何使用jquery将数字添加到输入ID名称中
- 如何根据onchange事件的序列ID名称获取值
- 检索一个值,而不对id名称进行硬编码
- JQuery-具有windows文件名的Html ID名称正在静默地删除斜杠
- 在javascript中切换id名称
- 在javascript中选择部分ID名称
- 检测,自动将输入Id更改为当前Id名称
- 如何获得几个td具有相同的id名称的文本