我正在尝试prettyprint
我将获得xml或JSON作为字符串的<pre>
元素的值,因此我首先尝试获取值,然后测试它是否为xml或json并在这里调用各自的prettyprint方法是我的代码...
function showData(attName) {
var attData = document.getElementById(attName).getElementsByTagName('pre')[0];
alert(attData);
// once I get the value would like to test whether it is xml or json
//if (attData contains xml test condition )
prettyPrint.xml(attData);
else prettyPrint.json(attData);
document.getElementById('Details').style.display='none';
document.getElementById(attName).style.display='block';
}
因此,每当我点击以下代码中的查看链接时,都会调用showData
。
<div id="Details" class="body">
<a href="javascript:showData('${attachmentName}')">View</a>
</div>
<div id="${attachmentName}" style="display:none; margin-left:60px; margin-top:5px;position:absolute;background-color:#F8F8F8;padding:10px" >
<h1>${attachmentName}:${attachmentId}</h1>
<a href="javascript:hideData('${attachmentName}')"><h5 style="color: #FF0066;"> [X Close] </h5></a> <br/>
<pre class="prettyprint">${attachmentData}</pre>
</div>
在警报中我得到[object HTMLPreElement]
但不知道如何使它成为字符串,所以我也试过......
var objectHTMLCollection = document.getElementById(attName).getElementsByTagName('pre')[0],
string = [].map.call( objectHTMLCollection, function(node){
return node.textContent || node.innerText || "";
}).join("");
alert (objectHTMLCollection);
但仍然是HTMLPreElement
...
我尝试过JQuery jQuery('#'+attName).find('.prettyprint').data();
,但结果为[object Object]
。
我没有在JavaScript中有太多曝光,可能是我没有以正确的方式做到这一点。如果有人能帮忙的话会很棒。
答案 0 :(得分:2)
添加.innerHTML - 应该可以工作,摆脱复杂的映射函数,这些函数可以同时处理多个<pre>
标记。
var attData = document.getElementById(attName).getElementsByTagName('pre')[0].innerHTML;
alert(attData);
答案 1 :(得分:1)
如果你正在使用jQuery:
using TestAlias= Class1.test;
它可以获取元素的文本内容。
答案 2 :(得分:0)
您的上一个js代码段已关闭,但您在非数组对象上调用map,并将错误的var传递给alert()。要找到所有'pre'元素:
var htmlObject = document.getElementById(attName);
var str = htmlObject.textContent || htmlObject.innerText || "";
alert (str);
如果您实际上只是在寻找一个'pre'元素:
<dependency>
<groupId>net.glxn</groupId>
<artifactId>qrgen</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>net.sf.barcode4j</groupId>
<artifactId>barcode4j-light</artifactId>
<version>2.1</version>
</dependency>
请记住,元素的id是唯一的,因此查询id和标记名称毫无意义。