2

我正在使用 xsl 从 xsl 生成 html。我必须在 css 中的类名称中使用 ip 地址,如下所示:

<td><div title="delete" >
    <xsl:attribute name="class">
         delete_link_<xsl:value-of select="destinationIp"/>
    </xsl:attribute>    
    <img class="row-remover" src="/media/img/remove.png"/>
</div></td>

我有这个jquery函数:

 $('.delete_link_<xsl:value-of select="destinationIp"/>').click( function() {
      // do some thing here
 });

但是因为 ip 地址中有“点”,所以上面的代码不起作用。当我删除 xml 文件中的 destinationIp 标记点时,它可以工作。所以我认为“点”有问题。任何想法让它工作?真的谢谢 :)

4

3 回答 3

2

仅仅删除这些点可能会产生不良后果

考虑以下两个 IP 地址:

13.8.123.4

138.12.3.4

当点被删除时,我们在两种情况下得到完全相同的结果:

1381234

我相信您希望为每个 IP 地址设置不同的类。如果是这样,请不要删除这些点,而是用合法字符替换它们

<td><div title="delete" class="delete_link{translate(destinationIp,'.','_')}">
    <img class="row-remover" src="/media/img/remove.png"/>
</div></td>

使用此代码为上面的两个 IP 地址生成两个不同的类

delete_link13_8_123_4

delete_link138_12_3_4

另请注意,您的原始代码是如何通过使用 AVT(属性值模板)收缩两次(从 6 行到 3 行)的。

于 2012-10-14T14:31:21.530 回答
1

嘿,伙计,您将像这样转义 IP 地址:\\在每个特殊字符之前使用,这样就可以了。

工作演示 http://jsfiddle.net/gubfj/

样本

127\\.0\\.0\\.1

https://groups.google.com/forum/?fromgroups#!topic/jquery-en/ugchaJObJFo

在每个特殊字符前使用两个反斜杠。

jQuery 选择器中的反斜杠转义下一个字符。但是您需要其中两个,因为反斜杠也是 JavaScript 字符串的转义字符。第一个反斜杠转义第二个反斜杠,在字符串中为您提供一个实际的反斜杠 - 然后转义 jQuery 的下一个字符。

希望这适合原因:)

代码

$('.delete127\\.0\\.0\\.1').click( function() {
     alert("you click ==> " + $(this).html());
      // do some thing here
 });​
于 2012-10-14T06:53:53.173 回答
1

您可以使用 translate() 函数从字符串中删除点字符。

例如...

<xsl:value-of select="translate( destinationIp, '.', '')"/>

参考:

  1. http://zvon.org/xxl/XSLTreference/Output/function_translate.html
  2. (XSLT 1.0)http://www.w3.org/TR/xpath/#function-translate
  3. (XSLT 2.0) http://www.w3.org/TR/xpath-functions/#func-translate
于 2012-10-14T11:50:45.573 回答