用$()包装一个字符串并在其中查找一个元素

时间:2013-11-17 10:36:51

标签: jquery

给定一个字符串是页面的html,如何在其中找到特定元素?

例如

var foo = "<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <div class="container">
            <ul class="subcontainer">
                <li>1</li>
                <li>2</li>
                <li>3</li>
            </ul>
        </div>
    </body>
</html>";

我如何获得<ul class="subcontainer"><li>1</li><li>2</li><li>3</li></ul>

我尝试使用jQuery包装字符串并通过过滤器

查找元素
var bar = $(foo).filter('.container ul.subcontainer');

如何解决这个问题?

更新

我正在使用jQuery 2.0.2

2 个答案:

答案 0 :(得分:1)

试试这个:

var bar = $(foo).find('.subcontainer')

答案 1 :(得分:1)

对于多行字符串,首先Javascript需要\,并且您还需要转义内部"字符:

var foo = "<html>\
    <head>\
        <title>Test</title>\
    </head>\
    <body>\
        <div class=\"container\">\
            <ul class=\"subcontainer\">\
                <li>1</li>\
                <li>2</li>\
                <li>3</li>\
            </ul>\
        </div>\
    </body>\
</html>";

然后,使用find代替过滤器:

var obj = $(foo).find("ul.subcontainer");

示例:http://jsfiddle.net/Ng5GT/