【问题标题】:JavaScript createElement qnJavaScript createElement qn
【发布时间】:2010-02-24 07:42:21
【问题描述】:

为什么这段代码不起作用? 当我使用注释部分而不是表格时,它可以工作...... 使用表为什么不能工作?

<html>
    <head>
        <script type="text/javascript">
        function addLine() {
            var p = document.createElement('p');
            p.innerHTML = "hello";
            document.getElementById("addline").appendChild(p);
        }

        </script>
    </head>
    <body>
    <!--
    <input type="submit" value="New Line" onClick="addLine()"/>
    <div id="addline"></div>
    -->
        <table>
            <tbody>
                <tr>inside a table</tr>
            </tbody>
            <tfoot>
                <tr><input type="submit" value="New Task" onClick="addLine()"/></tr>
                <tr id="addline"></tr>
            </tfoot>                        
        </table>
    </body>
</html>

【问题讨论】:

标签: javascript dom


【解决方案1】:

您正在尝试将&lt;p&gt; 元素附加到&lt;tr&gt; 元素,但那里只允许使用&lt;td&gt;&lt;th&gt; 元素。

【讨论】:

  • 如果他取消注释掉的部分就不会,正如他所说的那样,当它停止工作时他会这样做。然后不确定他是要附加到div 还是tr
  • 不,他说当他使用 而不是表时,它确实起作用(因为 p 可能是 div 的子级)。
  • 是的,它就在 B&W 中。需要再来一杯咖啡。 :-(
【解决方案2】:

你只能追加到

...

代替:

<tr id="addline"></tr>

用途:

<tr><td id="addline"></td></tr>

对于第二个问题,“for”是许多语言中的保留关键字。你不能使用它,如果你找到了一种方法[setAttribute 或类似的东西,不是我已经测试过,我只是在胡乱猜测] 这是不好的编程习惯。

也许你可以使用变量名“isFor”或“usage”=/idk

【讨论】:

  • 使用a.setAttribute('for') 是不错的做法。那时他正在指定一个属性的名称,这与 JavaScript 的保留关键字无关(如果他想在元素上设置该属性,他必须这样做)。
  • 为什么 有效但 无效?
  • 那为什么'label1.for = "aaa"' 如果不是保留字的情况就不能使用呢?
  • @yeeen — 出于我在回答中描述的原因,以及因为它分别一个保留字。
  • 好的,明白了...因为当我阅读 urs 时我不明白,当我看到 itz 时,我忘记了 abt urs...抱歉给您带来麻烦..
【解决方案3】:

(答案已删除,只是没有将其删除以保留 cmets。我对问题 1 的回答是错误的 [感谢大卫],您删除了问题 2,所以...)

【讨论】:

  • 代码示例中只有一个元素具有任何给定的id
  • @David:他说,当他取消注释已注释掉的部分时,它停止工作。注释掉的部分有&lt;div id="addline"&gt;&lt;/div&gt;,它稍后与他的表行冲突(&lt;tr id="addline"&gt;&lt;/tr&gt;)。我确实说过“div 和表格行”。
  • 不,他说当他使用 而不是表时,它确实起作用(因为 p 可能是 div 的子级)。
  • 我不是这个意思。我的意思是如果我使用注释部分“而不是表格”......你误解了我的意思。顺便说一句,你的 setAttribute 有效...
  • 我怎么知道 sth.sthelse 是否可以使用?这部分有在线资源吗?不要怎么搜索这些...
猜你喜欢
  • 2014-04-07
  • 2017-07-14
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 2015-01-15
相关资源
最近更新 更多