代码之家  ›  专栏  ›  技术社区  ›  Steve

jquery-从原始html按id访问子级

  •  0
  • Steve  · 技术社区  · 15 年前

    我是jquery的新手,所以这可能是个愚蠢的问题,但是我还没有找到解决方案。

    我有一个原始的html字符串存储为js变量,如下所示。我想做的是将html字符串解析为一个dom对象,并能够根据id访问和更改div中的任何子对象。

    所以,在解析原始html之后,我需要通过id访问“ht”和“vt”。我该怎么做?

    var htmlStr = "<div><span id='ht'>test 1</span><span id='vt'>test 2</span></div>";
    $(htmlStr).ht // Something like this, that would return "test 1"
    

    我基本上是想用一些原始的html作为模板来创建无序列表中的项目。我将使用模板创建新的列表项,然后用来自web服务的数据替换模板的某些部分。

    谢谢

    3 回复  |  直到 13 年前
        1
  •  2
  •   user113716    15 年前

    以你的例子来说,你可以做到。

    var htmlStr = "<div><span id='ht'>test 1</span><span id='vt'>test 2</span></div>";
    var htContent = $('#ht', htmlStr).text();
    

    基本上,您得到一个id为的元素 ht ,在 <div> 存储在 htmlStr 变量。

    然后,检索它的文本内容 .text() . 或者,也可以使用 .html() .


    编辑:

    如果要对该html字符串做很多工作,可以将其存储在jquery对象中,并根据需要执行任何操作,即使它尚未插入到dom中。

    var $htmlStr = $("<div><span id='ht'>test 1</span><span id='vt'>test 2</span></div>");
    

    现在 $htmlStr 是一个jquery对象,您可以使用多种jquery方法来操作它。

        2
  •  1
  •   jigfox    15 年前

    试试这个:

    $("#ht",htmlStr).html()
    
        3
  •  1
  •   Tim Cooper    13 年前
    var htmlStr = "<div><span id='ht'>test 1</span><span id='vt'>test 2</span></div>";
    $(htmlStr).find('#ht').text();
    

    应该这么做。