i have this type of 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>
this is my full code to load xml file and xslt. and get the ul li list using xslt.
<!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>
i want to set click on leaf node when click on leaf node its text are set in my
<div id="result"/>
e.g:-
click on One Day
its last child there have not child then its text copy in to div
tag.
how its possible...
i think its work with jquery function click.
thanks...
This will select all li with no children. Then just attach click event. (assuming valid HTML)
Sounds like you need to modify the HTML, Anyways try this:
Working Demo