我是html和javascript的初学者。我试图在按下按钮时输出一些文本,从javascript使用.innerHTML,但它不打印任何东西。我通过id链接div(如果有可能我想避免循环)。这是代码;
<section class="box special features">
<div class="features-row">
<section>
<h3 ="h31"> </h3>
<p id="p1"> </p>
<p id="p2"> </p>
</section>
<section id="s2">
<h3 id="h32"> </h3>
<p id="p3"> </p>
<p id="p4"> </p>
</section>
</div>
</section>
<button onclick= "myFunction()" id="button" name="button">ok</button>
<script type="text/javascript">
function myFunction () {
h31.innerHTML = ("some text 1");
p1.innerHTML = ("some text 2");
p2.innerHTML = ("some text 3");
h32.innerHTML = ("some text 4");
p3.innerHTML = ("some text 5");
p4.innerHTML = ("some text 4");
}
</script>
谢谢。
答案 0 :(得分:4)
<h3 ="h31"> </h3>
您在这里错过了id
属性的属性名称。
因此,h31.innerHTML = ("some text 1");
错误和函数中止。
<section class="box special features">
<div class="features-row">
<section>
<h3 id="h31"> </h3>
<p id="p1"> </p>
<p id="p2"> </p>
</section>
<section id="s2">
<h3 id="h32"> </h3>
<p id="p3"> </p>
<p id="p4"> </p>
</section>
</div>
</section>
<button onclick= "myFunction()" id="button" name="button">ok</button>
<script type="text/javascript">
function myFunction () {
h31.innerHTML = ("some text 1");
p1.innerHTML = ("some text 2");
p2.innerHTML = ("some text 3");
h32.innerHTML = ("some text 4");
p3.innerHTML = ("some text 5");
p4.innerHTML = ("some text 4");
}
</script>
&#13;
如果您使用了validator,则可以使用此功能。
注意,最佳做法是使用getElementById
或其他DOM方法,而不是依赖于浏览器将具有id
的任何元素扩展为全局JS变量的非显而易见的行为。
答案 1 :(得分:-1)
h31
并且您的其他标识符未定义。您需要通过执行以下操作来实际获取HTML元素:
document.getElementById("h31").innerHTML = "some text 1";