繁体   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