javascript - 如何在字符串中查找指定的 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, 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());

...但不起作用。

我想选择一个特定的元素来进行小处理(删除任何 div 或旁白部分)。

最佳答案

jQuery(a).find(b) 只会查找 b ,它是 a 的后代。在您的示例中,#test 是根节点,因此它既是 a 又是 b,因此不会有匹配项。

相反,您可以使用.filter():

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());

http://jsfiddle.net/gg5r6mqp/

关于javascript - 如何在字符串中查找指定的 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26538410/

相关文章:

javascript - 处理选项卡按下事件以在可编辑的 html 表中添加动态自定义行

javascript - JavaScript 可以在重新加载后保持任何状态吗?

jquery - 为什么 .hover() 不适用于映射图像,但 .mouseover() 可以?

html - 如何使用 jQuery 获取 <link> 标签的 href?

html - 使用 Bootstrap 列折叠空格

javascript - 从多个数据 JSON 数组写入响应

javascript - 我不明白 javascript 的每个循环

javascript - 为什么我在 a.js 中看不到 b.js 中定义的变量,尽管包含前者?

javascript - 如何在 Ionic 3 中导入外部 JS 文件

php - 图片上传输入: 1 input that will take up to 4 uploads