2011-05-10 80 views
5

我使用PHP和ajax命令来获取外部网页的全部HTML内容(通过PHP file_get_contents()命令),并将该HTML传递给JavaScript变量。一旦将页面的HTML内容存储在变量中,我可以使用jQuery与该变量的内容进行交互,就像jQuery通常与DOM进行交互的方式一样?在此示例中,我试图搜索具有特定ID属性的某些HTML元素(<div><script>标签)的存在。任何人都可以建议我怎么做到这一点?jQuery可以解析存储在变量中的HTML吗?

+0

为了澄清,我想使用jQuery从包含外部网页的HTML内容的变量中提取数据*。 – jake 2011-05-10 14:57:26

回答

12

如果我理解正确,你应该能够将变量传递给jQuery函数并相应地工作。

一个简单的例子与.filter()

$(myHtml).filter('#someid').doStuff(); 
4

它只是作为一个字符串传递给jQuery的构造。

var foo = jQuery('<p><b>asd</b><i>test</i></p>'). 
alert(foo.find('i').text()); 
0

是的。即使没有,你也可以制作一个无形的div,然后在那里解析它。

1

你甚至可以使用原生JS来做到这一点。在这种情况下,通过使用其innerHTML属性像这样的新的HTML添加到一个隐藏的div:

document.getElementById('hidden_div_id').innerHTML = myHTML; 

一旦新的HTML被添加,您可以通过使用节点任何你想要的方式走路。

0

只需将其注入到隐藏的div中,并在其中操作您需要的内容即可。

var myHTML;//variable with html from php 

var $hiddenDIV = $('<div></div>').hide().appendTo('body').html(myHTML); 
/*Now you can traverse the contents of $hiddenDIV. 
* If you need to get the contents back: 
*/ 
var newHTML = $hiddenDIV.html(); 
+0

如果我这样做,我会如何防止外部网页的HTML运行的JavaScript? – jake 2011-05-10 15:08:00

+0

那么,你可以从html中删除javascript并将它存储在另一个变量中,或者如果你根本不需要javascript,那么你可以完全删除它。如果您需要编写该脚本的帮助,请告知我。 – UpHelix 2011-05-10 15:10:43

+0

@jake - 但是,这种做法可能是一个矫枉过正的问题。我会用BoltClock的方法。 – UpHelix 2011-05-10 15:18:38

相关问题