Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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字符串的'head'部分提取元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何从HTML字符串的'head'部分提取元素?

Javascript 如何从HTML字符串的'head'部分提取元素?,javascript,jquery,html,Javascript,Jquery,Html,我有一个变量(s),它保存整个HTML文档(作为字符串)。我想从它的头部部分提取一些元素。使用body这不是问题,我将整个数据打包到jQuery变量中,并调用find 但与head部分不同。当我将它打包到jQuery对象时,我可以看到它为它创建了一个数组,并且我看到了我想要提取的元素(因此,到目前为止,它可以按照我的意愿工作)。但是当我对它运行find时,jQuery会完全忽略head及其内容 那么如何从头中提取元素呢 请注意,目前我正在尝试提取链接节点,以获取CSS文件的URL。您只需查询jQ

我有一个变量(
s
),它保存整个HTML文档(作为字符串)。我想从它的
头部
部分提取一些元素。使用
body
这不是问题,我将整个数据打包到jQuery变量中,并调用
find

但与
head
部分不同。当我将它打包到jQuery对象时,我可以看到它为它创建了一个数组,并且我看到了我想要提取的元素(因此,到目前为止,它可以按照我的意愿工作)。但是当我对它运行
find
时,jQuery会完全忽略
head
及其内容

那么如何从
头中提取元素呢


请注意,目前我正在尝试提取
链接
节点,以获取CSS文件的URL。

您只需查询jQuery对象即可

var sHtmlString = ....;
var oDom = $(sHtmlString);
oDom.find("head > link");

对于CSS文件的URL,此regexp应执行以下操作:

var patt = /.*<link(.*href="(.*)"|.*rel="stylesheet"|.*type="text\/css"){1,}.*>.*/gi;
var array_of_ccs_files = head_as_str.match(patt);
for (var i = 1; i < array_of_ccs_files.length; ++i) {
    console.log(array_of_ccs_files[i]);
}
var patt=/.*.*/gi;
变量数组\u of_ccs\u files=头\u as_str.match(patt);
对于(var i=1;i
对于DOM中的顶级元素,似乎必须使用filter()而不是find()

var html=$.parseHTML(“”);
$(html).filter(“link”).each(函数(i,link){
警报(链接);
});

这会提醒字符串中的三个链接。

为什么不能只执行
$(“链接”)?@囚犯,你指的是使用
find
方法吗?因为它不是当前文档。谢谢,我检查了它,但是
正文之外没有任何内容可用。我甚至不能对
body
使用
find
,要搜索的唯一有效元素是
body
中的节点(至少看起来是这样)。没错,它可以在DOM上工作,但不能在解析的字符串上工作:它的普通文档片段似乎也有相同的限制。谢谢。这一个有效,但我会稍微长一点,也许有人会想出常规的DOM方法。
var html = $.parseHTML('<html><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><link rel="stylesheet" href="/css/inuit.css"><link rel="stylesheet" href="/css/inuit.css"><link rel="stylesheet" href="/css/inuit.css"></head><body></body></html>');

$(html).filter("link").each(function(i, link) {
    alert(link);  
});