如果.innerText
的选定值为a
,我正在尝试更改第一个option
的{{1}}属性我没有看到任何错误控制台,并尝试移动我的脚本,看看是否有任何改变,但事实并非如此。现在我的剧本就在身体的尽头。
为什么这不起作用?!
演示:http://jsfiddle.net/L2gm9/1/
HTML:
1
JS:
<div id="container">
<ol>
<li><a href="#">This is the first link</a></li>
<li><a href="#">This is the first link</a></li>
<li><a href="#">This is the first link</a></li>
<li><a href="#">This is the first link</a></li>
<li><a href="#">This is the first link</a></li>
<li><a href="#">This is the first link</a></li>
<li><a href="#">This is the first link</a></li>
<li><a href="#">This is the first link</a></li>
</ol>
<select id="numbers">
<option>Select</option>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
</select>
</div>
答案 0 :(得分:2)
查看小提琴和控制台,您将看到错误Uncaught TypeError: Cannot read property 'firstElementChild' of null
错误是由在页面上加载元素之前调用该函数引起的。
window.onload = (function(){
"use strict";
var select = document.getElementById("element"),
option = select.firstElementChild;
select.addEventListener("onchange", function(){
var div = document.getElementById("hook"),
ol = div.firstElementChild,
li = ol.firstElementChild,
a = li.firstElementChild;
console.log(a);
if(this.children[0].value === 1)
a.innerHTML = "This is the first element";
}, true);
})(); <-- executes the function and assigns result to unload handler
您想要删除()
现在下一个问题是您使用addEventListener错误。你不用 事件名称中的“on”。并非所有浏览器都支持它。
select.addEventListener("change", function(){
答案 1 :(得分:0)
尝试制作一个实际的javascript函数,然后将onchange属性添加到html中的元素:
function ChangeText() {
var div = document.getElementById("hook"),
ol = div.firstElementChild,
li = ol.firstElementChild,
a = li.firstElementChild;
console.log(a);
if(select.children[1].innerText === 1) {
a.innerText = "This is the first element";
}
}
<select id="numbers" onchange="ChangeText();">...</select>
你可能最好更改功能,以简化它,但希望这可以指出你正确的方向并解决你的直接问题。