JavaScript-getElementsByClassName适用于一个函数,但不适用于另一个函数
JavaScript - getElementsByClassName works for one function but not the other
我正在尝试编写一个简单的页面,每次点击都会使用getElementsByClassName更改网站上的定价。
这是有效的:
<script>
function monthly() {
var price = document.getElementsByClassName("price");
price[0].innerHTML = "$10";
price[1].innerHTML = "$20";
price[2].innerHTML = "$30";
price[3].innerHTML = "$40";
}
</script>
<button onclick="monthly()">Monthly</button>
<button onclick="1year()">1 year</button>
<button onclick="2year()">2 year</button>
<button onclick="3year()">3 year</button>
<br>
<span class="price">$1</span><br>
<span class="price">$2</span><br>
<span class="price">$3</span><br>
<span class="price">$4</span><br>
添加1年后不工作():
<script>
function monthly() {
var price = document.getElementsByClassName("price");
price[0].innerHTML = "$10";
price[1].innerHTML = "$20";
price[2].innerHTML = "$30";
price[3].innerHTML = "$40";
}
function 1year() {
var price2 = document.getElementsByClassName("price");
price2[0].innerHTML = "$8";
price2[1].innerHTML = "$16";
price2[2].innerHTML = "$24";
price2[3].innerHTML = "$32";
}
</script>
<button onclick="monthly()">Monthly</button>
<button onclick="1year()">1 year</button>
<button onclick="2year()">2 year</button>
<button onclick="3year()">3 year</button>
<br>
<span class="price">$1</span><br>
<span class="price">$2</span><br>
<span class="price">$3</span><br>
<span class="price">$4</span><br>
有人知道为什么吗?
TIA。
JavaScript中的函数或变量不能以数字开头。
标识符必须以美元符号($)、下划线(_)或unicode字符开头。
在您的情况下,
<button onclick="1year()">1 year</button>
<button onclick="2year()">2 year</button>
<button onclick="3year()">3 year</button>
所有3个功能都无效。
感谢@Richard Hamilton,这是完整的工作代码snipplet。
<script>
function monthly() {
var price = document.getElementsByClassName("price");
price[0].innerHTML = "$10";
price[1].innerHTML = "$20";
price[2].innerHTML = "$30";
price[3].innerHTML = "$40";
}
function annually() {
var price = document.getElementsByClassName("price");
price[0].innerHTML = "$8";
price[1].innerHTML = "$16";
price[2].innerHTML = "$24";
price[3].innerHTML = "$32";
}
</script>
<button onclick="monthly()">Monthly</button>
<button onclick="annually()">1 year</button>
<br>
<span class="price">$1</span><br>
<span class="price">$2</span><br>
<span class="price">$3</span><br>
<span class="price">$4</span><br>
相关文章:
- formatDate JavaScript 函数仅适用于 Chrome
- 适用于 Javascript 函数的应用程序范围的身份验证处理程序
- 我的函数仅适用于 ajax 调用后的警报
- javascript 函数 - 传递给函数的变量适用于IE,但不适用于Firefox
- 从 HTML 调用 WCF 服务总是转到错误函数.适用于 aspx 页面
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 强制仅限数字的js函数不'不适用于Firefox,但适用于Chrome;IE运行良好
- 回调函数的定义以及它如何适用于array.prototype.forEach/map/filter方法
- Ajax函数仅适用于alert()
- jquery函数适用于live,而不适用于on
- onclick函数不适用于JSFiddle,但适用于CodePen
- Javascript FormData函数适用于Chrome和Opera,但不适用于Firefox
- 子函数中的参数对象(适用于chrome控制台,但不适用于其他地方)
- Javascript函数只适用于onclick或setTimeout
- Javascript函数只适用于ie浏览器
- 该函数适用于jquery 1.4.2,但不适用于jquery 1.9.1
- Dygraph:JS函数适用于axisLabelFormatter,但不适用于valueFormatter
- jQuery函数.on适用于1.8.3,但不适用于1.9.1
- 使用date.UTC检查两个日期范围的Javascript函数适用于除Firefox之外的所有浏览器
- 函数适用于 OnClick,但不能通过 JavaScript 工作