如何在HTML,DOM中使用jQuery检测元标记

use*_*451 4 html jquery dom meta-tags

这是我遇到的一个问题,我使用PHP脚本来获取HTML页面并将HTML内容作为字符串返回给jQuery的AJAX调用.

$.ajax({
type: "POST",
    data: "url="+tar_url,
    url: "curl.php",
    success: function (data, textStatus, jqXHR){
       $("meta", $(data))// not working
       $(data).find("meta") //not working
       $("img",$(data)) //works
       $(data).find("div") //works                  
},
Run Code Online (Sandbox Code Playgroud)

在成功函数回调中,我注意到我可以使用普通选择器来获取div,img,ul等.但是,上述方法都不能选择元标记.

首先,我不知道HTML是否包含任何元标记.如果它包含一些,我想选择它们并解析它们,等等.用jQuery选择那些元标记是不是不可能?

小智 5

我刚才遇到了同样的问题,并在寻找解决方案时遇到了这篇文章.最后,对我有用的是用filter( )而不是find( ).

来自Chrome的Javascript控制台:

$.ajax({
    type: 'GET', 
    url: $getThisURL, 
    success: function(data) { output = $(data).filter('meta'); }
});
Run Code Online (Sandbox Code Playgroud)

输出:

[<meta http-equiv=?"Content-Type" content=?"text/?html;?charset=utf-8">?,
<meta name=?"color:?Background" content=?"#262626">?,
<meta name=?"color:?Text" content=?"#fff">?,
<meta name=?"color:?Links" content=?"#ffbc00">?,
<meta name=?"if:?Show notes" content=?"1">?,
<meta name=?"robots" content=?"noindex">?,
<meta charset=?"utf-8">?,
<meta http-equiv=?"x-dns-prefetch-control" content=?"off">?]
Run Code Online (Sandbox Code Playgroud)