Javascript 从html字符串获取img元素

Javascript 从html字符串获取img元素,javascript,jquery,html,html-parsing,Javascript,Jquery,Html,Html Parsing,我有以下html字符串: <html> <head> </head> <body> <table> <tbody> <th> <tr> <img src=""/> </tr> </th> &l

我有以下html字符串:

<html>
<head>
</head>
<body>
    <table>
        <tbody>
            <th>
              <tr>
                <img src=""/>
              </tr>
            </th>
        </tbody>
    </table>
</body>
</html>
其中,wikiHTML是我以json格式向WikipediaAPI发出的关于几个搜索词的请求

编辑:

从img和信息框返回:

image:[object Object] 
infobox[object Object] 
image:[object Object] 
infobox[object Object]
image:[object Object] 
infobox[object Object]
image:[object Object] 
infobox[object Object] 
image:[object Object] 
infobox[object Object]
image:[object Object] 
infobox[object Object]
image:[object Object] 
infobox[object Object] 
image:[object Object] 
infobox[object Object] 
这样做可以:

var image = $("img").html();
这样做可以:

var image = $("img").html();

是的,例如在jQuery中,您需要将字符串传递给
$
函数,然后通过
img
选择器获取

编辑 因此,根据您的编辑,您的代码应该是:

console.log( img[0].outerHTML )
$wikiDOM=$(“”+wikiHTML+“”);
var infobox=$($wikiDOM.find('.infobox').html());
if(infobox!=“未定义”&&infobox!=“未定义”){
var img=infobox.filter('img');
console.log(img[0].outerHTML);
}

如您所见,我在
$wikiDOM.find('.infobox').html()周围添加了
$()
。因为
innerHTML
DOM属性没有
filter
方法,所以您得到的是
undefined
。只有jQuery可以。例如,在jQuery中,您需要将字符串传递给
$
函数,然后通过
img
选择器获取

编辑 因此,根据您的编辑,您的代码应该是:

console.log( img[0].outerHTML )
$wikiDOM=$(“”+wikiHTML+“”);
var infobox=$($wikiDOM.find('.infobox').html());
if(infobox!=“未定义”&&infobox!=“未定义”){
var img=infobox.filter('img');
console.log(img[0].outerHTML);
}

如您所见,我在
$wikiDOM.find('.infobox').html()周围添加了
$()
。因为
innerHTML
DOM属性没有
filter
方法,所以您得到的是
undefined
。只有jQuery才有。

您实际上有字符串吗?或者是源代码?我有一个字符串你有一个字符串吗?或者是源代码?我实际上有一个stringThis将不返回任何内容作为当前选择器的
html()
method返回当前选择器的子节点,其工作方式类似于
innerHTML
,您需要
outerHTML
这里我在html.find('img')中未定义@好的,使用
过滤器
而不是
查找
方法。参见示例:在我的例子中,我有一个这样的var。var infobox=$wikiDOM.find('.infobox').html();从wikipedia获取infobox的html。对于过滤器,我仍然没有定义。这是离题的。但是如果你想解析维基百科,你可能会考虑使用JSON API,我得到JSON维基百科信息箱的几个搜索术语,但这是不相关的。因为我的信息框中没有html。我在问题中添加了代码。我在html.find('img')中没有定义@好的,使用
过滤器
而不是
查找
方法。参见示例:在我的例子中,我有一个这样的var。var infobox=$wikiDOM.find('.infobox').html();从wikipedia获取infobox的html。对于过滤器,我仍然没有定义。这是离题的。但是如果你想解析维基百科,你可能会考虑使用JSON API,我得到JSON维基百科信息箱的几个搜索术语,但这是不相关的。因为我的信息框中没有html。我在问题中添加了代码。
$wikiDOM = $("<document>"+ wikiHTML+ "</document>");
var infobox = $( $wikiDOM.find('.infobox').html() );
if(infobox != 'undefined' && infobox !== ""){
    var img = infobox.filter( 'img' );
    console.log( img[0].outerHTML );
}