在jQuery

时间:2016-03-15 16:01:00

标签: javascript jquery html xslt

我可能会问一个非常基本的问题。我搜索了很多帖子,但没有找到正确的信息。请指出我正确的方向。

以下是我的方案。我正在使用jQuery / Javascript,HTML,XSL。

我有一些XML格式的示例数据。数据的结构如下所示

<information>
    <qContact>
        <name>TOM</name>
        <phone>612656656</phone>
        <email>tom@tom.com</email>
        <empId>1221212<empId>
    </qContact>
    <qContact>
        <name>SRAMK</name>
        <phone>566541042</phone>
        <email>abc@vnc.com</email>
        <empId>654212301<empId>
    </qContact>
    <!-- ... --->
</information>

我有一个表,它在一个有超链接/按钮“EDIT”的表中显示了一些这些信息。因此,当用户点击表格中的编辑按钮时,我需要填充文本框/单选按钮中的数据,我有XSL格式的数据。

我附上了我的屏幕示例图:screenshot

我不确定如何在jQuery或Javascript中访问XSL。 在html中我无法访问,例如我正在迭代它。

<xsl:for-each select="/<xsl:for-each select="/information/qContact">">

<xsl:value-of select="name"/>

这里我有XSL节点列表,我需要其中一个,假设当用户点击mike行时,我需要从XSL获取mike属性并在文本框中设置它们。

可行吗?

  1. 在jQuery中访问XSL

  2. 在这种情况下迭代特定节点<qContact>(然后获取姓名,电子邮件,电话等)?

  3. 请帮帮我。

    更多信息:

    1)我使用Html创建不同的字段[文本,单选按钮等]

    2)当我将数据保存在数据库中并重新加载表单时,我将该数据放入XSL并在html页面中访问它。

    示例:

    <td><input id="empName" type="text" name="name" value="{/information/qContact/name}" /></td>
    

    3)我也可以在jquery里面访问它。

    示例:

     console.log("<xsl:value-of select="/information/qContact/name>");
    

    问题场景:

    <xsl:for-each select="/information/qContact">
    
    <a href="#" onclick="edit('Generated','{ID}','{current()}');event.returnValue=false; return false;">Edit</a>
    
    </xsl:for-each>
    
    function edit(name,id,selectData){
                        console.log("Srikanth");
                        console.log(selectData); // This is printing all the data inside it.
                        console.log("<xsl:value-of select="/information/name"/>"); // Not able to access like this
                        $('#name').val('<xsl:value-of select="/information/qContact/name"/>');// Not able to access like this
                        $('#email').val('<xsl:value-of select="/information/qContact/email"/>');// Not able to access like this
                        console.log(id);
    
                }
    

1 个答案:

答案 0 :(得分:0)

问题标题是在jQuery中访问XSL
简短的回答是:你做不到。您可以使用transformNode执行xslt(取决于浏览器)。

但这不是你想做的事 请记住,涉及三个步骤。

  • 加载xml和xsl并生成html(使用JS)
  • loading(解释生成的html) - xml和xslt不再可访问(至少不像你那样)。
  • 执行onclick处理程序

您生成的链接类似于:

   < a href="#" onclick="edit('Generated','','
      TOM
      612656656
      tom@tom.com
    1221212
  ');event.returnValue=false; return false;">Edit</a>

因此,您需要生成所需数据的html或JavaScript表示。

例如,生成名为{name: 'TOM'}的JS对象:

<a href="#" 
       onclick="edit('Generated','{ID}',{{ name: '{name}' }});event.returnValue=false; return false;">Edit</a>