2014-01-14 41 views
0

即时通讯使用jquery min 1.3.2。你能帮我修复jQuery选择器吗?它不适用于单引号用户名。如果用户=“彼得”,一切正常。单引号连接jQuery选择器

var user = "Pet'e"; 
var id = "1"; 

var value = $("a[name=" + user + "][id=" + id + "]").attr("todo"); 
+0

这个亘古不变的道理..因为你已经有一个ID **(注:ID应该始终是唯一的)** ..你不需要名称属性选择器有所有..是的避免使用(只)整数作为ID .. – bipen

回答

2

尝试在包装的价值""

var value = $('a[name="' + user + '"][id="' + id + '"]').attr("todo"); 

演示:Fiddle

但因为你有一个ID使用id选择

$('#' + id) 

演示:Fiddle

+0

@downvoter我没有错过任何东西 –

1

你要逃避的性格:

var user = "Pet'e"; 
var id = "1"; 
var userEscaped = user.replace("'", "\\'"); 

var value = $("a[name=" + user + "][id=" + id + "]").attr("todo"); 
1

试图逃跑

var user = "Pet\'e"; 
1

请确保您有一个unique id和尝试像,

var value = $('a#' + id).attr('todo'); 
1

既然你已经分配id为您的元素,你只需要使用:

$('#' + id) 

在那旁边,看起来像你使用data属性为todo,所以更改:

$('#' + id).attr("todo") 

到:

$('#' + id).data("todo") 

或:

$(this).attr("data-todo")