所以我正在为自定义 data-xx 属性编写一个 jquery 选择器。这个属性的值是网络路径。在我的脚本中,我试图通过在我的选择器中使用此属性的值来识别单击的是什么
这里是代码布局
<a data-path="\\network\Dir1\SubDir\SubDir2\file.xml" href="#">Link1</a>
这是我的选择器,不返回任何内容。
$('a[data-path="\\\\network\\Dir1\\SubDir\\SubDir2\\file.xml"]')
只有当我只使用文件名时我的选择器才起作用
$('a[data-path*="\file.xml"]')
我不确定这里转义反斜杠的方式或使用自定义属性选择器的方式是否有问题。
如果我执行 $('a#id').data('path')
我会得到这个
"\network\Dir1\SubDir\SubDir2\file.xml"
谢谢
最佳答案
正如您在问题评论中所述,您需要在路径中的每个反斜杠中使用 4 个反斜杠:
var allLinks = $('a');
var longLink = $('a[data-name="\\\\\\\\network\\\\Dir1\\\\SubDir\\\\SubDir2\\\\file.xml"]');
console.log(" *** links found: ", allLinks.length, longLink.length);
这是一个工作示例:http://plnkr.co/edit/D2w8G7yTaOusG5qwT51x?p=preview
关于反斜杠的 Javascript 字符串比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27263853/