Jquery html()和保留元素名称

时间:2015-04-08 12:19:04

标签: javascript jquery html ajax xml

在AJAX调用的结果中,我有多个XML格式的字段。其中一个名为Request的节点包含我想要显示的整个XML结构。

var request = $(xml).find("Request").html()

以上行返回Request节点的内容。但是,其中一个标记称为<INPUT>。哪个被解释为HTML元素。 这是我在var request中得到的结果:

<root>
    <input>
        <i_date>20150316</i_date>
        <i_order_nr>110535</i_order_nr>
        <i_sequence_number>0057</i_sequence_number>
        <i_time>105016</i_time>
        <i_uom>KG</i_uom>

</root>

如您所见,缺少结束</input>标记。它存在于我的Ajax调用的响应中。但是通过使用JQuery .html(),它将被删除。如何在没有Jquery解释标签的情况下获取Request节点的内容?

2 个答案:

答案 0 :(得分:0)

试试这个:  var response = $('<div/>').text($(xml).find("Request").html()).html(); 它应该创建一个div元素将你的xml作为文本添加到该div中(按顺序将转义html标签)然后html()函数会获取转义文本。

答案 1 :(得分:0)

感谢所有评论。我最终以肮脏的方式走了。我不喜欢这样做,但似乎这是唯一的选择。

xml= xml
     .replace(/<input>/g , "<input2>")
     .replace(/<\/input>/g , "<\/input2>");
var request = $(xml).find("Request").html()
              .replace(/<input2>/g , "<input>")
              .replace(/<\/input2>/g , "<\/input>");