Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 在叶节点上设置单击事件_Javascript_Xslt - Fatal编程技术网

Javascript 在叶节点上设置单击事件

Javascript 在叶节点上设置单击事件,javascript,xslt,Javascript,Xslt,我有这种类型的html:- <ul> <li>Activities<ul> <li>Physical1<ul> <li>Cricket<ul> <li>One Day</li> </ul> </li> </ul> <

我有这种类型的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>
  • 活动
    • 物理1
      • 板球
      • 总有一天
  • 测试1
    • Abc考试
  • 测试2
    • 在Xyz测试

这是我加载xml文件和xslt的完整代码。并使用xslt获取ul li列表。

<!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>

无标题页
var xml=loadXMLDoc(“abc.xml”);
var xsl=loadXMLDoc(“a.xsl”);
函数loadXMLDocActiveX(位置){
var doc=新的ActiveXObject(“MSXML2.FreeThreadedDOMDocument”);
doc.async=false;
单据加载(位置);
退货单;
}
函数loadXMLDocOther(位置){
xhttp=newXMLHttpRequest();
xhttp.open(“GET”,位置,false);
xhttp.send(“”);
返回xhttp.responseXML;
}
函数loadXMLDoc(dname){
if(window.ActiveXObject){
返回加载xmldocactivex(dname);
}
else if(window.XMLHttpRequest){
返回载荷xmldocother(dname);
}
}
函数转换ActiveX(xml、xsl、目标、选定){
var transform=newActiveXObject(“MSXML2.XSLTemplate”);
transform.stylesheet=xsl;
var processor=transform.createProcessor();
processor.input=xml;
如果(选定){
processor.addParameter(“已选择”,已选择);
}
processor.transform();
target.innerHTML=processor.output;
}
函数transformOther(xml、xsl、target、selected){
var xsltProcessor=new xsltProcessor();
导入样式表(xsl);
如果(选定){
xsltProcessor.setParameter(null,“已选择”,已选择);
}
var resultDocument=xsltProcessor.transformToFragment(xml,文档);
target.innerHTML=“”;
target.appendChild(resultDocument);
}
函数displayResult(){
var targetElement=document.getElementById(“加载”);
//IE代码
if(window.ActiveXObject){
transformActiveX(xml、xsl、targetElement);
}
//Mozilla、Firefox、Opera等的代码。
else if(文件、实施和
document.implementation.createDocument){
transformOther(xml、xsl、targetElement);
}
}
我想在单击叶节点时设置“单击叶节点”,其文本在我的
e、 g:- 单击
One Day
它在那里的最后一个子项have not child,然后将它的文本复制到
div
标记中。
怎么可能。。。 我认为它与jquery函数click一起工作。

谢谢

这将选择没有子项的所有li。然后只需附加单击事件。(假设为有效的HTML)


这将选择没有子项的所有li。然后只需附加单击事件。(假设为有效的HTML)


听起来您需要修改HTML,无论如何,请尝试以下方法:

$('li:not(:has(*))。单击(function(){
$('#result').text($(this.text());
});

听起来您需要修改HTML,无论如何,请尝试以下方法:

$('li:not(:has(*))。单击(function(){
$('#result').text($(this.text());
});

这是无效的htmlPutting在问题的每个句子末尾添加标点符号将使问题更容易理解。如果你不愿意这样做,那么愿意提供帮助的人就会减少。这是无效的。在问题的每个句子末尾加标点符号会使问题更容易理解。如果您不愿意这样做,那么愿意提供帮助的人就会减少。我认为OP希望div在列表之外,而不是在取消单击的节点中。我认为OP希望div在列表之外,而不是在取消单击的节点中。
$('li:not(:has(*))').click(.....)
$('li:not(:has(*))').click(function(){
     $('#result').text($(this).text());
});


<div id="result"></div>