18

我正在为具有多个评分的表单编写表单验证脚本,并且我想插入一些文本,上面写着“给评分!” 对于用户错过的每个评分。我编写了下面的代码来执行此操作,但我遇到了一个问题,即 give_rating 节点仅附加到表单上的最后一个节点。我知道这是因为 appendChild 基本上是移动一个节点而不是复制它,我尝试使用 cloneNode 解决这个问题,但这完全破坏了我的 JS。

无论如何,这是代码。我究竟做错了什么?

谢谢你的帮助,

克里斯

var give_rating = document.createElement('span');
give_rating.className='small red';
give_rating.innerHTML = '<strong> &nbsp;Give a rating!</strong>';

document.getElementById('rating1').appendChild(give_rating);
document.getElementById('rating2').appendChild(give_rating);

当我使用上面的代码时,代码 give_rating 仅附加到“rating2”。

document.getElementById('rating1').appendChild(give_rating.cloneNode(True));
document.getElementById('rating2').appendChild(give_rating.cloneNode(True));

当我使用此代码时,整个脚本都会失败。如何添加“给予评分!”的实例 对于用户未能填写的表单上的每个评分?

4

2 回答 2

15

JavaScript 区分大小写:True应该是true(小写)。

于 2010-11-19T04:54:09.287 回答
8
  1. 您只能插入一次创建的 html 元素或文档片段。因此,您必须调用 cloneNode() 函数。
  2. javascript 区分大小写。所以,它应该是cloneNode(true),而不是cloneNode(True)
  3. 您可以通过按打开浏览器(Chrome 和 IE/Edge)的 javascript 调试器F12。然后你可以看到你的脚本发生了什么。
于 2017-11-03T02:44:52.863 回答