我有一个我点击的div元素,它应该触发检查元素的当前innerHTML值,然后匹配条件并进行更改。
是脚本相对于元素位置的位置还是关于加载?该脚本位于元素上方,但它适用于第二次和后续点击(交替未显示)。
innerHTML在第一次点击时不会发生变化,但是在第一次点击时会隐藏其他事件。
HTML
<div id="element" onclick="changeHim();">Change me upon click.</div>
脚本
function changeHim() {
var currentLabel = document.getElementById("element");
if(currentLabel=="Change me upon click"){
document.getElementById("element").innerHTML="You have been changed.";
}
}
答案 0 :(得分:2)
getElementById
的结果是DOM元素而不是div的内容
声明
if (currentLabel == "change me upon click")
绝不是true
。
答案 1 :(得分:1)
你需要检查innerHTML:
if(currentLabel.innerHTML=="Change me upon click"){
另外,修复功能缺失的右括号}
。
答案 2 :(得分:1)
错误号1。
你应该声明
var currentLabel = document.getElementById("element").innerHTML
而不是
var currentLabel = document.getElementById("element");
错误号2。
缺少功能关闭支架}
错误3号。
使用
if(currentLabel=="Change me upon click."){
而不是
if(currentLabel=="Change me upon click"){
因为(innterHTML)文本中缺少一个DOT(。)
更正后的FULL代码(已测试)如下所示
<script>
function changeHim() {
var currentLabel = document.getElementById("element").innerHTML;
if(currentLabel=="Change me upon click."){
document.getElementById("element").innerHTML="You have been changed.";
}
}
</script>
<div id="element" onclick="changeHim();">Change me upon click.</div>
答案 3 :(得分:1)
要将文本标签提取为:
var currentLabel = document.getElementById("element").textContent;
或
var currentLabel = document.getElementById("element").innerHtml;
答案 4 :(得分:1)
您的child = function (byref) {
parent_class.call(this, byref);
}
child.prototype = Object.create(parent_class.prototype);
child.prototype.child_func = parent_class.prototype.parent_func;
child.prototype._vtbl = true;
语句导致的问题应该是if
if (currentLabel.innerHTML == "Change me upon click.")
function changeHim() {
var currentLabel = document.getElementById("element");
if (currentLabel.innerHTML == "Change me upon click.") {
document.getElementById("element").innerHTML = "You have been changed.";
}
}