无法访问JavaScript中xsl中存在的Html标记

无法访问JavaScript中xsl中存在的Html标记,javascript,html,xml,xslt,Javascript,Html,Xml,Xslt,我有一个使用XML和XSL的html页面。还有像,和这样的html标记。我想从javaScript访问这些标记,并从javaScript为其属性设置值。我尝试使用GetElementById、GetElementByName、GetElementByTagName访问下面发布的代码中的和,但无法执行此操作 守则摘录: <xml id="xmlSchedule" LANGUAGE=javascript onreadystatechange="return xmlSchedule_onread

我有一个使用XML和XSL的html页面。还有像
这样的html标记。我想从javaScript访问这些标记,并从javaScript为其属性设置值。我尝试使用GetElementById、GetElementByName、GetElementByTagName访问下面发布的代码中的和,但无法执行此操作

守则摘录:

<xml id="xmlSchedule" LANGUAGE=javascript onreadystatechange="return xmlSchedule_onreadystatechange()"></xml>
<xml id="xslSchedule">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template>                                                
      <table id="tblSchedule" index='0' class="GridText" style="TABLE-LAYOUT:fixed;FONT-SIZE:9pt;FONT-FAMILY:verdana;width=100%">
        <xsl:for-each select="VOE-OBJECT/ITEM">
          <tr id="trSchedule" onmouseover="this.style.cursor='default'"> <xsl:attribute name="TWRow"></xsl:attribute>
            <td data="25" width="20" height='17' align='left'>
                <img><xsl:attribute name="SRC"><xsl:eval>getChargeIcon(this)</xsl:eval></xsl:attribute><xsl:attribute name="title"><xsl:eval>getChargeTitle(this)</xsl:eval></xsl:attribute>
                </img>
            </td>
            <td  data="24" id='tdNote' width="20" height="17" align='middle'>
                <img><xsl:attribute name="SRC"><xsl:eval>getNoteIcon(this)</xsl:eval></xsl:attribute><xsl:attribute name="title"><xsl:eval>getNoteTitle(this)</xsl:eval></xsl:attribute>
                </img>
            </td>

getChargeIcon(此)getChargeTitle(此)
getNoteIcon(此)getNoteTitle(此)
JavaScript函数:

   function XYZ() {
   var oRow = document.GetElementByName("TWRow");
    var oLength = oRow.childNodes.length;
   for (var i = 0; i < olength; i++) {
       oRow.childNodes.item(i).attributes.getNamedItem("data")= i;
   }
函数XYZ(){ var oRow=document.GetElementByName(“TWRow”); var OleLength=oRow.childNodes.length; 对于(变量i=0;i 当我使用document.GetElementByName(“TWRow”)并签入quick watch时,它返回了一个对象,但计数为0


我搜索了很多,但找不到任何相关内容。我对XML和XSL非常陌生,请指导。

首先,我认为您应该在这里使用“GetElementsByName”,而不是“GetElementByName”(因为它对相同名称的多个元素有效)

但是它找不到任何东西的原因是因为HTML中没有名为“TWRow”的元素,而没有找到的原因是XSLT

 <tr id="trSchedule" onmouseover="this.style.cursor='default'">
     <xsl:attribute name="TWRow"></xsl:attribute>

这实际上是在tr元素上创建一个名为TWRow的属性

<tr id="trSchedule" onmouseover="this.style.cursor='default'" TWRow="">

但是要让GetElementsByName工作,它需要如下所示

<tr id="trSchedule" onmouseover="this.style.cursor='default'" name="TWRow">  

要解决此问题,请将XSLT更改为:

 <tr id="trSchedule" onmouseover="this.style.cursor='default'">
     <xsl:attribute name="name">TWRow</xsl:attribute>

TWRow
或者更好的方法是,直接在XSLT中写出属性

<tr id="trSchedule" onmouseover="this.style.cursor='default'" name="TWRow">  


Anup,没有GetElementById函数,它是GetElementById,你试过了吗?还要注意,命名空间中的XSL代码是W3C标准XSLT.AFAIK的专有的、现在不受支持的前身,使用它是非法的。此外,TWRow似乎是的属性,而不是元素.alert(document.GetElementById(“trSchedule”))应该显示对象的类型。另外,官方HTML属性必须是小写的(SRC->SRC)。此外,缺少match属性-除非您将其嵌入到某个位置。而且,我假设代码摘录来自不同的文档,因为文档只能有一个根节点?顺便说一句,尝试在Chrome中运行此操作,它有非常严格的错误检查。Fernando,是的,这是我在这里犯的错误。在我的实际代码中是getElementById。Kenney,是的正如你所指出的,我在这里犯了一些错误。我将在上面的代码中进行这些更改。你在说什么根节点?你能解释一下吗?你的Html代码在不同的文档中,JS代码在不同的文件中(对应的.JS文件)。
<tr id="trSchedule" onmouseover="this.style.cursor='default'" name="TWRow">