所以我正在为自定义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')
我得到了这个
“\网络\ Dir1中\ SUBDIR \ SubDir2 \ file.xml”
感谢
答案 0 :(得分:1)
$('a[data-path="\\\\\\\\network\\\\Dir1\\\\SubDir\\\\SubDir2\\\\file.xml"]')
这可以奏效,但我完全不知道它的理论。
答案 1 :(得分:1)
正如您的问题评论中所述,您需要在路径中使用每个反斜杠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
答案 2 :(得分:0)
这是我最终做的。第一条评论为我解决了。
var path = 'value in html';
path.replace(/\\/g, '\\\\');
$(a'[data-path*="' + path+ '"]');