Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不是';我的javascript onclick事件是否在第一次单击时触发?_Javascript_Jquery - Fatal编程技术网

为什么不是';我的javascript onclick事件是否在第一次单击时触发?

为什么不是';我的javascript onclick事件是否在第一次单击时触发?,javascript,jquery,Javascript,Jquery,我单击了一个div元素,它应该触发对元素当前innerHTML值的检查,然后匹配一个条件并进行更改 是脚本相对于元素的位置,还是关于加载?该脚本位于元素上方,但在第二次和后续单击时可以工作(未显示) innerHTML不会在第一次单击时更改,但另一个事件(如隐藏内容)会在第一次单击时生效 HTML <div id="element" onclick="changeHim();">Change me upon click.</div> }您需要检查innerHTML: i

我单击了一个div元素,它应该触发对元素当前innerHTML值的检查,然后匹配一个条件并进行更改

是脚本相对于元素的位置,还是关于加载?该脚本位于元素上方,但在第二次和后续单击时可以工作(未显示)

innerHTML不会在第一次单击时更改,但另一个事件(如隐藏内容)会在第一次单击时生效

HTML

<div id="element" onclick="changeHim();">Change me upon click.</div>

}

您需要检查innerHTML:

if(currentLabel.innerHTML=="Change me upon click"){

另外,修复函数中缺少的右括号。

您需要使用innerHTML检查:

if(currentLabel.innerHTML=="Change me upon click"){
另外,修复函数缺少的右括号。

错误1

你应该申报

var currentLabel = document.getElementById("element").innerHTML
而不是

var currentLabel = document.getElementById("element");
if(currentLabel=="Change me upon click"){
错误2

缺少函数结束括号}

错误3

使用

而不是

var currentLabel = document.getElementById("element");
if(currentLabel=="Change me upon click"){
因为(innterHTML)文本中缺少一个点(.)

下面给出了更正的完整代码(已测试)

<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>

函数changeHim(){
var currentLabel=document.getElementById(“元素”).innerHTML;
如果(currentLabel==“单击后更改我”。){
document.getElementById(“元素”).innerHTML=“您已被更改。”;
}
}
点击后更改我。
错误1

你应该申报

var currentLabel = document.getElementById("element").innerHTML
而不是

var currentLabel = document.getElementById("element");
if(currentLabel=="Change me upon click"){
错误2

缺少函数结束括号}

错误3

使用

而不是

var currentLabel = document.getElementById("element");
if(currentLabel=="Change me upon click"){
因为(innterHTML)文本中缺少一个点(.)

下面给出了更正的完整代码(已测试)

<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>

函数changeHim(){
var currentLabel=document.getElementById(“元素”).innerHTML;
如果(currentLabel==“单击后更改我”。){
document.getElementById(“元素”).innerHTML=“您已被更改。”;
}
}
点击后更改我。

getElementById的结果是一个DOM元素,而不是该div的内容。
所以声明

if (currentLabel == "change me upon click")

从不为
true

getElementById的结果是一个DOM元素,而不是该div的内容。
所以声明

if (currentLabel == "change me upon click")

从不
为true

以获取文本标签:

var currentLabel = document.getElementById("element").textContent;


要获取文本标签,请执行以下操作:

var currentLabel = document.getElementById("element").textContent;


您的
if
语句导致了问题,应该是
if(currentLabel.innerHTML==“单击后更改我”)

函数changeHim(){
var currentLabel=document.getElementById(“元素”);
如果(currentLabel.innerHTML==“单击后更改我”。){
document.getElementById(“元素”).innerHTML=“您已被更改。”;
}
}

单击后更改我。
如果您的
语句导致问题,则应该是
如果(currentLabel.innerHTML==“单击后更改我”)

函数changeHim(){
var currentLabel=document.getElementById(“元素”);
如果(currentLabel.innerHTML==“单击后更改我”。){
document.getElementById(“元素”).innerHTML=“您已被更改。”;
}
}


单击即可更改我。
您缺少函数的结束括号,但可能您没有发布该括号。(更好的缩进有助于避免这种性质的错误。)哇!5分钟内你有5个答案。。stackoverflow的荣誉我知道,stackoverflow是一个伟大的社区/资源一个丰富的信息,想象一下服务器。@janicehoplin是的。。真理。。!!好吧,你错过了函数的结束括号,但也许你只是没有发布。(更好的缩进有助于避免这种性质的错误。)哇!5分钟内你有5个答案。。stackoverflow的荣誉我知道,stackoverflow是一个伟大的社区/资源一个丰富的信息,想象一下服务器。@janicehoplin是的。。真理。。!!检查我的答案并给出+1如果你觉得它是正确的,谢谢,我感谢其他人的帮助,我通常不选择答案,但我理解。检查我的答案并给出+1如果你觉得它是正确的,谢谢,我感谢其他人的帮助,我通常不选择答案,但我理解。我不明白,它是如何工作的?或者可能是触发了与任何情况都不匹配的else条件。(上面没有显示)。哦,天哪,我看到了,我提醒了currentLabel.innerHTML,这表明我不明白,它是如何工作的?或者可能是触发了与任何情况都不匹配的else条件。(上面没有显示)。哦,伙计,我看到了,我提醒了currentLabel.innerHTML,它显示通过接受答案并帮助可能面临相同问题的其他人来关闭线程。通过接受答案并帮助可能面临相同问题的其他人来关闭线程。