Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 如何判断HTML中的元素是否完整?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何判断HTML中的元素是否完整?

Javascript 如何判断HTML中的元素是否完整?,javascript,jquery,html,Javascript,Jquery,Html,我如何知道在使用JavaScript的HTML中有多少元素(例如:。)是完整的(以结尾) 例如,在HTML代码中: <input value='value 1' /> <input value='value 2' > <input value='value 3' /> <input value='value 1' /> JavaScript中的哪些代码会告诉我有3个元素带有输入标记?如果您有以下标记: <input type="

我如何知道在使用JavaScript的HTML中有多少元素(例如:
)是完整的(以
结尾)

例如,在HTML代码中:

<input  value='value 1' />
<input  value='value 2' >
<input  value='value 3' />
<input  value='value 1' />


JavaScript中的哪些代码会告诉我有3个元素带有输入标记?

如果您有以下标记:

<input type="text">
<input type="text">
<input type="text">
控制台将输出
3


基于Ralphs answer,如果您想使用vanilla JS,可以通过

document.querySelectorAll('input').length;

这就是问题所在,注释代码的输出必须为0,因为“input”标记都没有关闭。如何知道关闭了多少“输入”标记关闭
标记无效。“关闭”一个
标记的概念在html规范中没有依据。它的not input标记让它成为可以关闭的其他标记(div)。DOM api在html解析器对无效标记的含义做出最佳猜测后,公开文档的模型。如果您有需要关闭的标记,但是没有,那么无法从domapi中检测到。您需要在一个进程中运行,该进程可以直接访问未解析的html源代码。也许您可以使用XHR来请求
window.location
并用javascript解析html?可能,但不可取。
有一个可选的结束标记。可能需要指出的是,您可以拥有完整有效的html,其中包含未关闭的
标记。三个在结尾有一个
/
,但这在html5中并不重要。你不能。无效HTML未添加到DOM中,或者已重新配置以使其在DOM中显示为有效。例如,像
blah
这样的代码是无效的,但可能会被解析为DOM中的HtmlPanelment父级,HTMLElement子级,节点子级类型为TEXT_Node。如果页面通过javascript加载其内容,并且我插入获取(*)个数的javascript代码,该怎么办标签的内部Html在固定的时间间隔内,这可能会给我一个未关闭的标签?或者它永远不会给我未关闭的标记吗?当您通过domapi访问文档时,还没有未关闭的标记。这是html源代码中存在的一个概念。浏览器解析html源代码后,区别就消失了。我想它会输出拉尔夫的答案(3),这不是我想要的。你的问题是“JavaScript中的什么代码会给我3个元素带有输入标记?”请澄清你想要什么,“我不知道我是否理解你的问题。最初,您要求打印出所有的输入标记,在您的初始问题和示例中将输出4。您是否要求输出唯一输入标记的数量(即值为1的两个输入仅计1??),我在问题回答中得到了答案。非常感谢艾迪生和拉尔夫
document.querySelectorAll('input').length;