XML的DOM对象,到HTML

Posted

技术标签:

【中文标题】XML的DOM对象,到HTML【英文标题】:DOM object of XML, to HTML 【发布时间】:2012-05-26 13:09:42 【问题描述】:

我有一个带有 XML 表的 XML 代码

<displayTable>
<tr>
<td> items </td>
<..>
</displayTable>

它的结构与 html 中的表格完全相同,但元素的名称不同。 然后我用 jQuery 解析 XML,并得到一个 DOM 对象。但是现在,当我尝试获取表格的 html 元素时,使用 .text().html() 时没有得到 HTML 表格(没有错误,我得到标签内的项目)...任何人知道为什么?

编辑:很抱歉造成混乱。 所以它类似于这个js。我想要来自 XML 的 HTML 代码。所以只有A... 在 &&& 行,它产生“未捕获的类型错误:无法调用未定义的方法‘替换’”错误 var str = "A";

$('#code-analysis').html(str);
console.log(str);

// parse string of XML code
var xmlString = str;
var xml = $.parseXML( xmlString );
$xml = $( xml );


// print to table in console
var displayTable = $xml.find( 'displayTable' ).children;
console.log ( displayTable );


// print table.text() to console, 
// but not in the HTML format 
// just the text within the element
var displayTableText = displayTable.text();
console.log ( displayTableText );              // A


// print table.html() to console
var displayTableHTML = displayTable.html();  // &&&
console.log ( displayTableHTML );               

【问题讨论】:

您使用的代码是什么。 $.parseXML 返回一个 jQuery 对象。你可能需要做$($.parseXML(xml)) 您需要显示更多代码。你用 jQuery 做什么?你在console.log() 上看到了什么?你有什么期待? @Rocket 是的,我已经这样做了,谢谢 @Pavel Veller 查看编辑 xD 【参考方案1】:

您必须使用.children(),而不是.children。它是 jQuery 中的函数调用,而不是属性。此外,您可以将孩子传递给.html(),而无需将它们转换为字符串(尝试这样做时出错了)。

这样,只需将表格行添加到&lt;table&gt; 元素:http://jsfiddle.net/cRRAM/3/

【讨论】:

对不起,我可能在复制和粘贴时错过了括号。哈哈哈但它仍然只生成文本,没有 和 标记。或者你的意思是我必须再次复制所有这些标签? 抱歉,“为表格重新生成标签”是什么意思?但是:我链接的代码也有错误,我正在修复,请稍等。 谢谢,我会尝试调整我的代码以使用 .html() 这样的。你知道为什么用 .html() 检索代码会导致错误吗?是不是因为 .html() 只从 HTML 对象中获取代码,而我试图从 jQuery 对象中获取它? 我不知道为什么,可能是因为它来自 XML。我也很好奇,我会试着调查一下并在这里发布我的发现。 找到原因:.html() 不适用于 XML 文档(请参阅 api.jquery.com/html)。

以上是关于XML的DOM对象,到HTML的主要内容,如果未能解决你的问题,请参考以下文章

HTML DOM对象的属性和方法介绍(原生JS方法)

js文本对象模型DOM

JS之DOM那些事

XML DOM

python大佬养成计划----HTML DOM

javascript入门系列 DOM篇 HTMLDOM