Javascript 如何在字符串中查找指定的HTML元素
我试图将一个网络“封装”到phonegap应用程序中,但我发现了一个问题。当我向服务器发出请求时,它会以html作为文本回答我,我想获取文本中的一些html元素并附加到应用程序index.html的div中。为此,我这样做:Javascript 如何在字符串中查找指定的HTML元素,javascript,jquery,html,Javascript,Jquery,Html,我试图将一个网络“封装”到phonegap应用程序中,但我发现了一个问题。当我向服务器发出请求时,它会以html作为文本回答我,我想获取文本中的一些html元素并附加到应用程序index.html的div中。为此,我这样做: jQuery.get(rute, function(htmlTemplate) { var data = jQuery(htmlTemplate).find('#wrapper'); //make a small treatment to data, bu
jQuery.get(rute, function(htmlTemplate)
{
var data = jQuery(htmlTemplate).find('#wrapper');
//make a small treatment to data, but not yet.
jQuery('body').html(data)
});
我还有其他类似的应用程序:
function loadPage(placeToLoad, rute, callback)
{
jQuery.get(rute, function(htmlTemplate)
{
var data = jQuery(htmlTemplate).find('#wrapperApp').parent();
if(data.html()!==undefined)
{
placeToLoad.html(data);
data = eraseNoScriptExternalPages(data);
data = eraseStylesExternalPages(data);
data = eraseLinksExternalPages(data);
makeImageScroll(data);
}
else
placeToLoad.html(htmlTemplate);
if (callback!=undefined && typeof(callback)==typeof(Function))
callback();
});
}
在第二种情况下,我需要区分来自外部服务器的页面(必须设计为不会造成附带损害)和本地页面
情况是,第二种情况有效,而第一种情况无效!!!为什么
我试着做一个简单的测试:
var html = '<head><style> body{background-color:rgba(128,128,128,0.3);}</style> </head> <body> <div id="test">HOLA</div> </body>';
jQuery("#content").html(jQuery(html).find("#test").html());
var html='body{背景色:rgba(128128,0.3);}HOLA';
jQuery(“#content”).html(jQuery(html.find(“#test”).html());
…但不起作用
我想选择一个特定的元素来进行小处理(删除任何div或一段旁白) 希望这能对你有所帮助。在这里,我创建了临时DOM对象并对其进行了查询:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
var html = '<head><style> body{background-color:rgba(128,128,128,0.3);}</style> </head> <body> <div id="test">HOLA</div> </body>';
var mydiv = document.createElement('div');
mydiv.innerHTML = html;
alert(jQuery($(mydiv)).find("#test").html());
});
</script>
</head>
<body>
</body>
</html>
$(函数(){
var html='body{背景色:rgba(1280,0.3);}HOLA';
var mydiv=document.createElement('div');
mydiv.innerHTML=html;
警报(jQuery($(mydiv)).find(#test”).html();
});
jQuery(a)。find(b)
将只查找a
的后代b
。在您的示例中,#test是根节点,因此它同时是a和b,因此不会有匹配项
相反,您可以使用.filter()
:
var html='body{背景色:rgba(128128,0.3);}HOLA';
jQuery(“#content”).html(jQuery(html).filter(“#test”).html());
var html = '<head><style> body{background-color:rgba(128,128,128,0.3);}</style> </head> <body> <div id="test">HOLA</div> </body>';
jQuery("#content").html(jQuery(html).filter("#test").html());