JQuery - Javascript - .hasData()不适合我

时间:2011-08-23 18:14:41

标签: javascript jquery

我正在尝试检查具有类sourceFocus的对象是否包含数据。但是,当我检查它时,它应该没有数据。我在这里做错了什么?

$('.source').click(function() {
    $('.source').removeClass('sourceFocus'); 
    $(this).addClass('sourceFocus'); 
    $(this).data('source_selected', true);
    console.log($.hasData(this));
    console.log(this);
});

$('.target').click(function() {

    $('.target').removeClass('targetFocus'); 
    $(this).addClass('targetFocus'); 

    $(this).data('target_used', true);
    //$('.sourceFocus').data('source_used', true);

    console.log($.hasData('.sourceFocus'));

    if($.hasData('.sourceFocus')){
        console.log("has data worked");
        check_for_duplicates();
}

3 个答案:

答案 0 :(得分:3)

我认为.hasData()方法不接受您的案例.sourceFocus中的选择器,请尝试选择.sourcefocus作为元素,然后将其传递给.hasData()函数。< / p> 尝试类似......

console.log($.hasData($('.sourceFocus:first')));

答案 1 :(得分:3)

$ .hasData()检查DOM元素 你必须使用数组表示法或.get()方法从jQuery对象中获取它(不要与$ .get()ajax方法混淆)

console.log($.hasData($('.sourceFocus')[0]));

答案 2 :(得分:2)

如果您尝试在正在使用.sourceFocus类的标记之间读取HTML,请在if语句中执行此操作:

$.hasData($('.sourceFocus').html())