[英]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.