我正在使用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标记点时,它的工作原理。所以我觉得'dot'有问题。任何让它成功的想法?非常感谢:)
答案 0 :(得分: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( Attribute Value Template ),原始代码如何缩小两次(从6到3行)。
答案 1 :(得分: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
});
答案 2 :(得分:1)
您可以使用translate()函数从字符串中删除点字符。
例如......
<xsl:value-of select="translate( destinationIp, '.', '')"/>
参见: