我有几个相似的元素,我需要从每个元素中获取一个值。两者之间的唯一区别是区分阶级。
<div id="box_1231231" class="myItem boxItem"></div>
<div id="toy_1231231" class="myItem toyItem"></div>
$(document).delegate('.myItem', 'mouseup', function() {
var key_box = ($(this).hasClass('.boxItem').attr('id')).replace('box_', ''),
val_box = $(this).hasClass('.boxItem').val(),
val_toy = $(this).hasClass('.toyItem').val();
...
});
我一直收到以下错误:
TypeError: $(...).hasClass(...).attr is not a function.
我错过了什么?
答案 0 :(得分:2)
hasClass
返回一个没有attr
方法的布尔值。如果我已经理解了您要做的事情,那么您需要使用if
声明:
$(document).on('mouseup', '.myItem', function() {
var $el = $(this);
if ($el.hasClass('boxItem')) {
var key_box = $el.attr('id').replace('box_', '');
var val_box = $el.val();
// your logic here...
}
else if ($el.hasClass('toyItem')) {
var val_toy = $el.val();
// your logic here...
}
});
另请注意,我将delegate
修改为较新的on
构造。
答案 1 :(得分:0)