[英]How to use jQuery and JavaScript accurately find if an element exists
我已經閱讀了幾篇有關此內容的文章,但是對我來說根本行不通。 我使用Ruby on Rails作為我的MVC框架。 我將類添加到我的body標簽中,以映射到controller
和action
。
<body class="<%= controller_name %> <%= action_name %>">
因此,關於控制器的home
操作about
我可能有
<body class="home about">
由服務器呈現並發送給客戶端。 我想要特定於頁面的JavaScript,但似乎無法正確執行。
var page = $('body.home')
if (page) {
console.log('Right page')
} else {
console.log('Wrong page');
}
// returns
// jQuery.fn.init [prevObject: jQuery.fn.init(1), context: document, selector: "body.information"]
var page = $('body.home')[0]
if (page) {
console.log('Right page')
} else {
console.log('Wrong page');
}
var page = $('body.home')[0]
if ($(page)) {
console.log('Right page')
} else {
console.log('Wrong page');
}
var page = $('body.home')[0]
if ($(page).length > 0) {
console.log('Right page')
} else {
console.log('Wrong page');
}
因此,當我在正確的頁面上(帶有元素類的頁面具有主頁類的頁面)時, console.logs
'錯誤頁面'
要檢查一個類,您需要使用classList。
像這樣:
普通的javascript。(classList.contains僅在現代瀏覽器中有效);
let body = document.getElementsByTagName('body'); console.log(body[0].classList.contains('one')); console.log(body[0].classList.contains('two'));
<body class="one tow"> </body>
您也可以:
let body = document.getElementsByTagName('body') let isClassThree = body[0].className.split(" ").indexOf('three') let isClassFour = body[0].className.split(" ").indexOf('four') console.log(isClassThree, isClassFour)
<body class='two three'> </body>
jQuery的: $("body").hasClass(className)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.