我有一个具有以下属性的DIV
<div car_id='1' car_type='4'><br>GM<a href="#" id="yt0"><img title="Delete" src="/cardelete/images/delete.png" alt="Delete" /></a></div>
基本上它有两个属性
car_id='1' car_type='4'
在我的Ajax成功函数上,我想删除上面的内容。我能够提醒 obj.car_id 和 obj.car_type
但删除部分不起作用。有人可以为它提供正确的语法吗?
"success"=>'js:function(data){
var obj = jQuery.parseJSON(data);
alert(obj.car_id);
alert(obj.car_type);
$("div[car_id=obj.car_id][car_type=obj.car_type)".remove();
}”,
谢谢
此致
基兰
答案 0 :(得分:3)
问题是你这样做:
$("div[car_id=obj.car_id][car_type=obj.car_type)".remove();
就JavaScript而言,这是一个单一的选择器字符串。由于您希望选择器的某些部分填充obj.car_id
和obj.car_type
的值,因此您需要使用字符串连接,如下所示:
function(data){
var obj = jQuery.parseJSON(data);
alert(obj.car_id);
alert(obj.car_type);
$('div[car_id="' + obj.car_id + '"][car_type="' + obj.car_type + '"]').remove();
}
答案 1 :(得分:2)
$('div[car_id="'+obj.car_id+'"][car_type="'+obj.car_type+'")'.remove();
答案 2 :(得分:1)
我对这里的语法感到困惑(这是什么语言?为什么JS函数存储为字符串?),但是有一些明显的问题。第一个是你没有将变量插入到字符串中 - 你将它们的名称视为字符串文字。第二个是你没有正确地关闭选择器,如果你使用代码突出显示就很明显,这是不可能的,因为函数存储为字符串。
function(data){
var obj = jQuery.parseJSON(data);
alert(obj.car_id);
alert(obj.car_type);
$("div[car_id='" + obj.car_id + "'][car_type='" + obj.car_type + "'])".remove();
}
另请注意,我已在attribute equals selector \[name="value"\]
插入引号,因为技术上是必需的。
答案 3 :(得分:1)
您需要转义字符串以使用对象属性(car_id和car_type),而不仅仅是字符串“obj.car_id”和“obj.car_type”。您还错误地关闭了属性选择器(缺少最后的']')和您的jQuery选择器。
正确的解决方案是:
$("div[car_id='" + obj.car_id + "'][car_type='" + obj.car_type + "']").remove();