我有这种类型的HTML:-
<ul>
<li>Activities<ul>
<li>Physical1<ul>
<li>Cricket<ul>
<li>One Day</li>
</ul>
</li>
</ul>
</li>
<li>Test1<ul>
<li>Test At Abc</li>
</ul>
</li>
<li>Test2<ul>
<li>Test At Xyz</li>
</ul>
</li>
</ul>
</li>
</ul>
<br>
这是我加载XML文件和xslt的完整代码。并使用xslt获取ul列表。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
<script>
var xml = loadXMLDoc("abc.xml");
var xsl = loadXMLDoc("a.xsl");
function loadXMLDocActiveX(location) {
var doc = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
doc.async = false;
doc.load(location);
return doc;
}
function loadXMLDocOther(location) {
xhttp = new XMLHttpRequest();
xhttp.open("GET", location, false);
xhttp.send("");
return xhttp.responseXML;
}
function loadXMLDoc(dname) {
if (window.ActiveXObject) {
return loadXMLDocActiveX(dname);
}
else if (window.XMLHttpRequest) {
return loadXMLDocOther(dname);
}
}
function transformActiveX(xml, xsl, target, selected) {
var transform = new ActiveXObject("MSXML2.XSLTemplate");
transform.stylesheet = xsl;
var processor = transform.createProcessor();
processor.input = xml;
if (selected) {
processor.addParameter("selected", selected);
}
processor.transform();
target.innerHTML = processor.output;
}
function transformOther(xml, xsl, target, selected) {
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
if (selected) {
xsltProcessor.setParameter(null, "selected", selected);
}
var resultDocument = xsltProcessor.transformToFragment(xml, document);
target.innerHTML = "";
target.appendChild(resultDocument);
}
function displayResult() {
var targetElement = document.getElementById("load");
// code for IE
if (window.ActiveXObject) {
transformActiveX(xml, xsl, targetElement);
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation &&
document.implementation.createDocument) {
transformOther(xml, xsl, targetElement);
}
}
</script>
</head>
<body onload="displayResult()">
<div id="load">
</div>
</body>
</html>
我想设置点击叶节点时,点击叶节点,其文本设置在我的<div id="result"/>
如:-点击One Day
,它的最后一个子没有子,然后它的文本复制到div
标签。
这怎么可能……我认为它的工作与jquery函数点击。
谢谢……
听起来你需要修改HTML,无论如何试试这个:
演示工作$('li:not(:has(*))').click(function(){
$('#result').text($(this).text());
});
<div id="result"></div>
这将选择所有没有子元素的li。然后附加click事件。(假设HTML有效)
$('li:not(:has(*))').click(.....)