Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从XML检索标记_Javascript_Jquery_Html_Xml - Fatal编程技术网

Javascript 从XML检索标记

Javascript 从XML检索标记,javascript,jquery,html,xml,Javascript,Jquery,Html,Xml,我正在尝试使用jQuery检索包含和信息的xml节点的内容。我遇到的问题是直接将其转换为html,保留相同的结构 XML: 后来: $('#answer').click(function(){ if(sentinal !== undefined){ $('#question').html( answers[sentinal] ); } }); 内容中包含的似乎只是1和

我正在尝试使用jQuery检索包含
  • 信息的xml节点的内容。我遇到的问题是直接将其转换为html,保留相同的结构

    XML:

    后来:

    $('#answer').click(function(){
                    if(sentinal !== undefined){
                        $('#question').html( answers[sentinal] );
                    }
                });
    
    内容中包含的似乎只是1和2,没有任何
    标记

    有没有关于如何保持节点结构的想法?

    试试看

    // Isolate the XML.
    var xmlNode = $(this).find('node');
    // Convert the XML structurally to HTML.
    // The (true) causes a deep copy.
    var htmlFromXml = document.importNode(xmlNode[0], true);
    // Append the resulting HTML to the DOM.
    $(htmlFromXml).appendTo($('#content'));
    
    从一个文档(例如通过XHR接收的XML文档)中获取DOM子树,并在另一个文档(例如HTML文档)中创建结构副本

    document.importNode

    摘要

    从可插入当前文档的外部文档创建节点副本


    您是否尝试过content=$(this).find('node').html()?尝试
    $('#content').append($(content))
    。如果您想查看xml示例,为什么要让大家猜测这不是问题所在
    contents()
    返回包含元素的子级和文本节点的jQuery对象。我会按照布鲁诺的建议去做,并使用
    html()
    访问节点。编辑的代码与我正在使用的更接近。我尝试使用html()而不是contents()来提取xml,但由于某些原因,jquery.click停止工作。尝试了您的解决方案:Append没有我想要的行为。我尝试将其重新排列为$('#question').html(htmlFromXml);但是显示与以前完全相同。为什么
    append
    不起作用?也许或者就足够了。我希望div内容被完全删除,并替换为我提供给它的
      。@hyleaus,我不知道你指的是哪个div,但是如果
      theDiv
      是它的选择器,那么
      $(theDiv)。替换为(htmlFromXml)
      应该做你想做的事情。
      $('#answer').click(function(){
                      if(sentinal !== undefined){
                          $('#question').html( answers[sentinal] );
                      }
                  });
      
      // Isolate the XML.
      var xmlNode = $(this).find('node');
      // Convert the XML structurally to HTML.
      // The (true) causes a deep copy.
      var htmlFromXml = document.importNode(xmlNode[0], true);
      // Append the resulting HTML to the DOM.
      $(htmlFromXml).appendTo($('#content'));