2016-08-24 47 views
0

每當我們有:jQuery的 - 啓用「顯示錯誤」,在控制檯

$("something") 

它不顯示在控制檯中的任何錯誤,如果它不能找到與該標記元素。有沒有一種方法,來顯示錯誤/通知,如果它不能得到元素(如普通的JavaScript與getElementBy...,當元素犯規確實存在吧..)

編輯1: 有人說,這是不錯誤,它只是「未找到」..我不同意這個觀點,因爲那麼所有的世界都應該向BROWSERS(谷歌,FF,Opera)報告他們犯了錯誤。爲什麼?因爲他們在控制檯中顯示顯示(並且他們做得很好!)當找不到元素時(使用getElementBy..)。我想讓jQuery也做同樣的事情。如何啓用該功能?

編輯2:我不想手動檢查每次($(element).length或等),我想啓用錯誤調試(不是條件編碼等)..

編輯3:怎麼樣,我們報道jQuery,使我們能夠定義即jQuery_Enable_Notices = true;(或者像這樣的smth)變量,並且在那種情況下,jQuery函數向控制檯日誌顯示這樣的錯誤?

+1

但是,這不是一個錯誤。它只是沒有找到。你可以通過自己創建錯誤,比如if(!$(「something」).length)'。 – eisbehr

+1

只要你喜歡,你可以不同意。 ;)但是,我們應該高興的是,當選擇器沒有發現任何東西時,jQuery不會拋出錯誤。這是非常想要的,因爲你可以像你所瞭解的那樣使用jQuery。如果在選擇器沒有返回元素時會出現錯誤,它將無法工作。通常情況下,您選擇*祝您好運*,例如$(':checked')''的$('.active')',只要沒有活動或選擇的東西。 – eisbehr

+1

_「(就像普通的Javascript與getElementBy一樣...,當元素不存在..)「_ - document.getElementById('foo')也不會拋出錯誤,如果找不到元素,它只會返回null。你的代碼_follows_可能會拋出錯誤,當然,如果它試圖訪問屬性或調用null方法之後。 – CBroe

回答

-1
if($('selector').length)   // use this if you are using id to check 
{ 
    // it exists 
} 

else 
{ 
console.log("not exist") 
} 

使用$('#selector').length它給你的長度,如果標籤是存在的,否則其他情況來看

你也可以使用這樣

// if element does not exist 

    if(!$('selector').length){ /* console here */ } 
+0

你誤會了這個問題,再讀一遍 –

+0

歡迎 你能解釋一下嗎 – Coder

+0

我不需要手動條件編程等等... –

-1

試試這個:

if ($("#mydiv").length > 0){ 
    // do something here 
} 

這如果元素不存在將返回零。

+0

你誤解了這個問題,再讀一遍。 –

2

默認情況下,對於jQuery而言,這不是一個錯誤,而是一種想要的行爲。

我想知道的唯一方法是構建一個圍繞jQuery構造函數的包裝。然後,只要選擇器未找到元素,您就可以自行打印錯誤。

但是,這真是一個解決方案,以滿足您的需求!我只會將其用於開發目的而不是生產環境。請注意,這僅適用於基礎構造,不適用於findchildrennext等子選擇器。否則,你必須包裝所有這些。 )

$ = function(selector, context) { 
 
    var elements = jQuery(selector, context); 
 

 
    if(!elements.length) { 
 
     console.log("element(s) by selector '" + selector + "' was not found"); 
 
    } 
 

 
    return elements; 
 
} 
 

 
$("div").text("test"); 
 
$("something").text("test");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div></div>