在JQuery中使用xsl:value-of的返回值

时间:2013-01-25 21:42:23

标签: jquery xml xslt

我的任务是找到一个客户端解决方案来动态显示XML数据(所以请不要使用PHP或ASP)。我完全愿意接受有关如何执行此操作的任何建议,但我目前正在尝试使用JQuery和DIV(可能不是最优雅的)解决方案。

这是我到目前为止所拥有的:

XML

<ForAdoption>
<Pet>
    <ID_Key>123abc</ID_Key>
    <Name>Spot</Name>
    <Species>dog</Species>
    <Info>Stuff about Spot.</Info>
</Pet>
<Pet>
    <ID_Key>789ghi</ID_Key>
    <Name>Doggy</Name>
    <Species>dog</Species>
    <Info>Stuff about Doggy.</Info>
</Pet>
<Pet>
    <ID_Key>987zyx</ID_Key>
    <Name>Mittens</Name>
    <Species>cat</Species>
    <Info>Stuff about Mittens.</Info>
</Pet>

*我无法知道将会有多少宠物或唯一的ID_Key。

我想要发生的是XSL中返回的值包含一个“链接”,以显示基于特定动物的更多信息(我使用JQuery来执行此操作)。基本上,Info结果将包含在使用display:none设置样式的DIV中。我希望每个宠物的“链接”能够引用该宠物的ID_Key(它始终是唯一的)。我当时希望能够根据它的ID_Key显示有关该宠物的其他信息。这有意义吗?

到目前为止,这是我的XSL:

<xsl:for-each select="ForAdoption/Pet">

      <p>
         ID_Key: <span style="cursor:pointer;text-decoration:underline;" id="{ID_Key}"><xsl:value-of select="ID_Key" /></span><br />
         Name: <xsl:value-of select="Name"/><br />
         Species: <xsl:value-of select="Species"/>
      </p>

    <script>
    $(document).ready(function () {
        $("#<xsl:value-of select="ID_Key" />").toggle(function() {
            $("#more_info").show();
            $("#").hide();
        }, function() {
            $("#more_info").hide();
        });
    });
    </script>
       <div  style="display:none;" id="more_info">
         More info: <xsl:value-of select="Info" />
         <!-- Need to figure out how to add some intelligence to connect this result to the selected ID_Key --> 
       </div>

</xsl:for-each>

因此,点击ID_Key会显示更多信息,但它只显示我的XML中第一只宠物的Info值。当然,我想要的是一些智能说:如果ID_Key(从我的跨度“链接”的id中返回)= n然后显示ID为ID_Key = n的宠物的信息!我看到并理解为什么会这样,但我只是不知道如何获得我想要的结果。

这可能吗?有更好的JavaScript / JQuery解决方案吗?这种事情甚至可能做客户端吗?任何建议都表示赞赏。

0 个答案:

没有答案