我想在点击时将其替换为“count is odd!”或“算是均匀的” 但我应该如何声明计数,以便它不会重新初始化为每个点击事件1个?
这是我的意思:
<h1 onclick="var count=1;
if (count%2==1) {
this.innerHTML='count is odd!'; count++;}
else{
this.innerHTML='count is even';count++;} ">
Click on this text</h1>
现在发生了什么,你可以看到每次点击都是一个。
答案 0 :(得分:2)
您可以尝试这一点,counter
变量位于onclick
闭包范围内,因此它将作为所有onclick
事件的全局变量。
var elements = document.getElementsByTagName("h1")
for (var key in elements)
{
if (elements.hasOwnProperty(key))
{
var counter = 1;
elements[key].onclick = function()
{
var oddEven = (counter++ % 2 == 1) ? "odd" : "even";
elements[key].innerHTML = "count is " + oddEven;
}
}
}
注意:您的元素不需要onclick
内联代码。
答案 1 :(得分:2)
以这种方式混合标记和javascript非常糟糕。我建议你分开逻辑:
<h1 id="myH">Click on this text</h1>
然后在单独的javascript文件中:
var count = 1;
window.onload = function() {
var myH = document.getElementById('myH');
myH.onclick = function() {
if (count % 2 == 1) {
myH.innerHTML = 'count is odd!';
} else {
myH.innerHTML = 'count is even';
}
count++;
};
};