2011-08-23 23 views
2

我想檢查是否有類sourceFocus的對象中有數據。但是,當我檢查它時,它應該沒有數據。我在這裏做錯了什麼?JQuery - Javascript - .hasData()不適合我

$('.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(); 
} 
+0

你能粘貼HTML也想知道(不要與$獲得()方法的AJAX混淆)看到你分配類sourceFocus和你想讀標籤之間的HTML你使用sourceFocus類 –

+0

你也可以檢查一下[returne d數據值未定義](https://stackoverflow.com/a/10358494/1366033)'$ obj.data('hello')!==未定義' – KyleMit

回答

3

我不認爲.hasData()方法接受選擇在您的案例.sourceFocus中,請嘗試選擇.sourcefocus作爲元素,然後將其傳遞給.hasData()函數。

嘗試類似...

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

這工作,謝謝! :) – RATabora

2

如果你想閱讀你所使用.sourceFocus類,那麼這樣做是你的if語句標籤之間的HTML:

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

$ .hasData()針對DOM元素檢查 ,你必須把它弄出來的jQuery對象,無論是使用數組符號或獲得()方法

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