簡體   English   中英

如何使用jQuery和JavaScript准確查找元素是否存在

[英]How to use jQuery and JavaScript accurately find if an element exists

我已經閱讀了幾篇有關此內容的文章,但是對我來說根本行不通。 我使用Ruby on Rails作為我的MVC框架。 我將類添加到我的body標簽中,以映射到controlleraction

<body class="<%= controller_name %> <%= action_name %>">

因此,關於控制器的home操作about我可能有

<body class="home about">

由服務器呈現並發送給客戶端。 我想要特定於頁面的JavaScript,但似乎無法正確執行。

我已經嘗試過了,但是總是返回true

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"]

我已經嘗試過了,但是總是返回true

var page = $('body.home')[0]

if (page) {
  console.log('Right page')
} else {
  console.log('Wrong page');
}

我已經嘗試過了,但是總是返回true

var page = $('body.home')[0]

if ($(page)) {
  console.log('Right page')
} else {
  console.log('Wrong page');
}

我已經嘗試過了,但是總是返回false

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM