这是我的代码:
.................
remProduct: function(e, $a) {
var orderObj = {
pid: $a.parents('li').find('input=[name=pid]').val(),
pk_id: $a.parents('div.packet').attr('id') || $a.parents('div.section').attr('id'),
isSideCart: !!$a.parents('div.packet').length
};
var callBack = function(json) {
if (json.success) {
if ($("div.sidebar").length) {
$("div.sidebar").replaceWith(json.body)
} else if ($("div.content").length) {
$("div.content").html(json.body);
}
}
front.rebindSideCart();
};
$.post(this.getPath() + '/remove-product', orderObj, callBack, 'json');
},
.................
我的想法是我在我的包中添加或删除产品。当我添加一个产品,之后我想删除它,它不起作用,而萤火虫告诉我这个错误:
错误:语法错误,无法识别的表达式:input = [name = pid]
,但是如果我刷新它的工作页面。谁能解释我为什么? Thx提前!
答案 0 :(得分:1)
您不需要在=
内input
之后立即使用input=[name=pid]
:
pid: $a.parents('li').find('input[name=pid]').val(),
Attribute Equals Selector 的正确语法为:jQuery("[attribute='value']")
。
由于您的值只是一个普通字符串,因此您不需要将其包含在双引号内,但如果您的值包含任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^
{|}〜` )作为名称的字面部分,必须使用两个反斜杠进行转义:\\或用引号括起来。
答案 1 :(得分:1)
在=
之后你不需要input
运算符。还要在引号中包含属性值。它应该是:
find('input[name="pid"]')
pid:
pid:$a.parents('li').find('input[name="pid"]').val(),
答案 2 :(得分:1)
应该是input[name=pid]
而不是input=[name=pid]
pid: $a.parents('li').find('input[name=pid]').val(),
//--------------^
// remove = from this position as it is not a valid selector
<强>语法:强>
$("element[attribute='value']")
对于egs:
$("input[name='pid']")