Javascript 检查body类是否包含带有jquery的短语?
我知道如何检查元素是否包含某些文本,但我需要确定类是否包含某些文本。我有几个页面,其中正文将有一个类,如:Javascript 检查body类是否包含带有jquery的短语?,javascript,jquery,Javascript,Jquery,我知道如何检查元素是否包含某些文本,但我需要确定类是否包含某些文本。我有几个页面,其中正文将有一个类,如: <body class="high-school-region-1"> <body class="middle-school-region-1"> <body class="elementary-school-region-1"> 但与hasClass不同的是,它更像是“classContains”——我知道这不是一个真实的东西,但是。。。有办法吗 还
<body class="high-school-region-1">
<body class="middle-school-region-1">
<body class="elementary-school-region-1">
但与hasClass不同的是,它更像是“classContains”——我知道这不是一个真实的东西,但是。。。有办法吗
还是更好的方法?我真的没有一种简单的方法将“region-1”作为它自己的类注入到每一个页面上,所以这似乎是一种方法
谢谢你的帮助 您可以使用,因为类只是一个属性
if ( $('body[class*="region-1"]').length > 0 ) { ...
阿德内奥是正确的
if($('body').attr('class').indexOf('region-1')>=0)
也可以工作
然而,有一种简单的方法可以“将region-1作为自己的类注入”
这里,body
既有highschool
又有region-1
类属性。可以将多个类添加为以空格分隔的列表。在本例中,您提供的代码
if($('body').hasClass('region-1')){//do this}
应该很好用
这是一个更干净的解决方案。检查一个类名的子字符串本质上就是将不同的类名放在一个类名中,然后再将它们取出。在我看来并不理想。这里是一个纯JS实现
您可以编写自己的微型jQuery插件,使其可重用,如下例所示:
/**
* Plugin implementation
* use with any jQuery selector that returns 1
* returns true or false depending on whether the element contains
*
* @param {string} cssClass
* @return {Boolean|undefined}
*/
$.fn.containClass = function(cssClass) {
if(this.length > 1) {
return;
}
return $(this).attr('class').indexOf(cssClass) > -1;
};
// Example usage.
$(function() {
if($('body').containClass('region')) {
console.log('Yes it contains region here.');
}
if(!$('body').containClass('blablabla')) {
console.log('no, blablabla is not found in class.');
}
console.log($('p').containClass('askjhdas'));
});
jsbin上的游戏区:谢谢。这是一个wordpress站点,所以我不会手动将类添加到主体中。它已经拥有了它现在拥有的类,因为这是页面slug。我看不到一个好的方法来创建一个php函数来添加类,因为这些页面没有任何共同点。所以我想我必须按照第一个例子的方式来做。啊,我明白了!不用担心,林赛。祝你好运,谢谢你的选择。我已经在使用jquery来实现与本文相关的其他功能,所以我想我还是坚持使用jquery。但知道这个选择也很好。
var bodyId = document.getElementById('sexybod').className.split('-'),
lastClass = bodyId[bodyId.length - 2] +'-'+ bodyId[bodyId.length - 1];
alert(lastClass);
/**
* Plugin implementation
* use with any jQuery selector that returns 1
* returns true or false depending on whether the element contains
*
* @param {string} cssClass
* @return {Boolean|undefined}
*/
$.fn.containClass = function(cssClass) {
if(this.length > 1) {
return;
}
return $(this).attr('class').indexOf(cssClass) > -1;
};
// Example usage.
$(function() {
if($('body').containClass('region')) {
console.log('Yes it contains region here.');
}
if(!$('body').containClass('blablabla')) {
console.log('no, blablabla is not found in class.');
}
console.log($('p').containClass('askjhdas'));
});