Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript已创建复选框未正确关闭标记_Javascript - Fatal编程技术网

Javascript已创建复选框未正确关闭标记

Javascript已创建复选框未正确关闭标记,javascript,Javascript,如果我创建这样一个复选框,并将其添加到我的表[TD]标记中: var chkBx = document.createElement('input'); chkBx.type = 'checkbox'; td.appendChild(chkBx); 它将创造 <tr> <td> <input type="checkbox" value="Current Issue"> </td> </tr> 此输

如果我创建这样一个复选框,并将其添加到我的表[TD]标记中:

var chkBx = document.createElement('input');
chkBx.type = 'checkbox';

td.appendChild(chkBx);
它将创造

<tr>
    <td>
        <input type="checkbox" value="Current Issue">
    </td>
</tr>

此输入标记尚未正确关闭。这在我的代码的其他地方造成了问题(例如,悬停不起作用)


我的Javascript中是否需要执行某些操作才能正确关闭此功能?

这取决于您使用的DOCTYPE。XHTML需要结束标记,HTML不需要。我认为浏览器会根据DOCTYPE自动决定动态创建的元素是否需要关闭标记


JSFIDLE上的解析器似乎也有问题。虽然标记在W3C验证器上得到了正确的验证,但是如果没有结束标记,它将无法工作。

您的CSS选择器没有选择任何内容

.Table .Popup tr:hover {
    background-color:red;
}
应该是:

.Popup tr:hover {
    background-color:red;
}
(见:)

应该是

table tr.PopupRow:hover {
    background-color:red;
}

(见:)

请注意,它们都将选择相同的元素,因此具有更多元素的选择器(第二个)将是实际使用的选择器

您的第一个选择器,
.Table.Popup tr:hover
将匹配当前悬停在上的
tr
元素和
元素,这些元素是具有
Popup
类的任何元素的后代,而这些元素又是具有
Table
类的任何元素的后代

您的第二个选择器,
.Table.Popup.popuruw:hover
将匹配当前悬停在上的
popuruw
类的任何元素,以及
Popup
类的任何元素的后代


小提琴中的标记没有反映该结构,因此选择器没有匹配任何内容(这就是为什么没有反映您的样式)。

您是如何获得该HTML的?您正在创建的DOM元素没有需要“关闭”的“标记”。这会导致什么问题?是什么解析这个HTML标记的?但是输入字段不应该用反斜杠结束,以使其格式正确吗?如果我在JSFIDLE it COMPLISE中看到这一点,如果我在我的表行上放置了一个tr:hover样式,它将不起作用。根据其他来源,这是因为TD标签需要正确完成。染料,这些标签是红色的。这是因为jsFiddle中的语法highlighter要求标记(标记)使用格式良好的XHTML。元素是通过JavaScript创建的,不受良好格式的约束。浏览器不会创建无效元素。
table tr.PopupRow:hover {
    background-color:red;
}
table .PopupRow:hover {
    background-color:red;
}