javascript - 如何使用两个按钮在两个框之间移动文本?
问题描述
鉴于这种:
function moveRight() {
var tmp = document.getElementById("lefttext").innerText;
if (document.getElementById("lefttext").innerText != null) {
document.getElementById("lefttext").innerText = document.getElementById("righttext").innerText;
document.getElementById("righttext").innerText = tmp;
}
}
<table width="250px" border="1">
<tr>
<td>
<div id="lefttext">Placeholder</div>
</td>
<td>
<button onClick="moveRight()" id="moveright">Right</button>
<button onClick="moveLeft()" id="moveleft">Left</button>
</td>
<td>
<div id="righttext"></div>
</td>
</tr>
</table>
我正在尝试使用两个按钮(左、右)在表格列的左右移动占位符文本。目前,我正在一侧进行测试(仅向右移动),但我想出的方法允许在两个位置之间交换文本,而不是仅仅将其向右移动并停止。
如果我的“lefttext”innerText 为空(空),“IF”不是应该阻止这种情况吗?我应该采取什么正确的方法?
谢谢。
解决方案
从我的评论
null
和空(空字符串)之间有区别。尽管它们都等效地“虚假”,但它们并不是一回事。尝试使用 console.log 注销 document.getElementById("lefttext").innerText 看看你得到了什么。你不会null
得到一个空字符串,那!=
就是null
,
你可以改变你原来的
if (document.getElementById("lefttext").innerText != null)
对此
if (!!document.getElementById("lefttext").innerText)
将!!
处理null
空字符串和undefined
function moveRight() {
var tmp = document.getElementById("lefttext").innerText;
if (!!document.getElementById("lefttext").innerText) {
document.getElementById("lefttext").innerText = document.getElementById("righttext").innerText;
document.getElementById("righttext").innerText = tmp;
}
}
<table width="250px" border="1">
<tr>
<td>
<div id="lefttext">Placeholder</div>
</td>
<td>
<button onClick="moveRight()" id="moveright">Right</button>
<button onClick="moveLeft()" id="moveleft">Left</button>
</td>
<td>
<div id="righttext"></div>
</td>
</tr>
</table>
推荐阅读
- gem5 - 如何在第 n 条指令处破坏 GDB 中的 gem5 可执行文件?
- python - 不要跳过 pandas.read_excel() 中的空白行
- javascript - 如何构建一个 vue 表单作为组件
- javascript - Webpack DevServer 主机 0.0.0.0 无法在 Windows 上运行
- sip - SIP UA 在重新邀请之前必须等待 Ack 吗?
- python - 读取所有范围名称和值
- eclipse - 执行 MI 命令 -exec-run 失败
- r - Jarque Bera 与 NA 的测试
- c# - C# scrable 游戏编码。不能结合字符串和整数?
- azure-service-fabric - Azure Service Fabric 集群不返回任何代码版本和配置版本