从元素获取属性

时间:2014-09-19 13:43:26

标签: jquery

我有几个相似的元素,我需要从每个元素中获取一个值。两者之间的唯一区别是区分阶级。

<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. 

我错过了什么?

2 个答案:

答案 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)

使用as,在抓取时移除.

 $(this).hasClass('toyItem')
 $(this).hasClass('boxItem')

Reference