省略了jquery开放标签 - 澄清它是如何工作的

时间:2014-07-14 09:14:54

标签: jquery

我有一个jQuery表达式,它将标签附加到表中。它只指定结束标记,但它似乎有效。

parent.$("#uploaded-files").append(
    $("<tr/>")
    .append($("<td/>").text(file.fileId))
    .append($("<td/>").text(file.fileName))
    .append($("<td/>").text(file.fileSize))
    .append($("<td/>").text(file.fileType))
    .append($("<td/>")
    .html("<a href='controller/get/"+index+".htm'>Click</a>"))
)

我不知道你可以在jQuery中做到这一点。看起来它允许您将结束标记放在开始标记所在的位置。有人可以帮我解释一下吗?

2 个答案:

答案 0 :(得分:1)

$("<td/>")与jquery中的$("<td></td>")相同。

你可以选择以下任何一种方式:

$('.selector').append('<td class="someClass" />');

或者,

$('.selector').append('<td class="someClass"></td>');

因此,这是打开和关闭标签的简写。

答案 1 :(得分:0)

那些不是关闭标签(结束标签),它们是自动关闭标签。 td的结束标记为</td>,而不是<td/><td/>是一种速记(在技术上不正确*,对于HTML)写作<td></td>的方式。它适用于jQuery,但you can also just leave the / out of those instead。 jQuery以完全相同的方式(故意)对待"<td>""<td/>""<td></td>"


*为什么在HTML中使用td的自关闭标记不正确:因为tags for elements that aren't void cannot be self-closing in HTML,只有XHTML。因此,在HTML中,<br><br/>都有效,因为br是一个void元素;但是<div><div/>都是div start 标记; HTML中的<div/>!= <div></div>(在XHTML中)。