[英]when looping through the DOM how do I check if I reached the body element?
我正在使用類.ui-mobile-viewport從鏈接元素到最接近的元素遍歷DOM。 這可以是DIV或BODY元素。
我需要檢查它是哪個元素,但是卻無濟於事...這就是我正在嘗試的方法:
var targetViewport;
//循環將targetViewport設置為$('div.ui-mobile-viewport')或$('body.ui-mobile-viewport')
if ( targetViewport === $('body') ) {
console.log("found a body");
}
感謝幫助!
您可以嘗試使用jQuery的.closest()
方法來代替自己進行遍歷。 因此,我認為您可以這樣做:
var x = $('thing-that-was-clicked').closest('.ui-mobile-viewport');
alert(x.is('body'));
alert(x.is('div'));
現在,您將.ui-mobile-viewport
元素作為jQuery對象,可以對它運行任何所需的測試,例如檢查body
或div
如上面的代碼所示。
您不能比較jQuery集合...您必須實際比較它們的節點,因此假設targetViewport也包含一個jQuery集合,您可以執行此操作
if ( targetViewport[0] === document.body ) {
console.log("found a body");
}
應該管用...
編輯:如果您喜歡jQuery方式(帶有附加功能調用)
if (targetViewport.is('body')) {
console.log("found a body");
}
您可以簡單地訪問元素的nodeName。
if (targetViewport[0].nodeName.toUpperCase() === 'BODY') {
}
這樣一來,您無需為檢查執行任何CSS查詢,調用jQuery,並且它不依賴於任何庫。
if(targetViewport[0] === document.body)
if(targetViewport[0].nodeName === 'BODY')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.