jQuery-检索单个特定类,同时具有多个
我正在做一个带有动画导航的项目。 (乔姆拉在后台工作) 当有多个类(如下所示)时,如何仅检索jQuery-检索单个特定类,同时具有多个,jquery,css,Jquery,Css,我正在做一个带有动画导航的项目。 (乔姆拉在后台工作) 当有多个类(如下所示)时,如何仅检索class=“item-##” 我的jQuery $(document).ready(function(){ var timer; var hover; $('#nav li').hover( function() { /*Here!>>*/ var id = $(this).attr('class').split('-')[1];
class=“item-##”
我的jQuery
$(document).ready(function(){
var timer;
var hover;
$('#nav li').hover(
function() {
/*Here!>>*/ var id = $(this).attr('class').split('-')[1];
$('.moduletable-subNav ul').slideUp();
$('#submenu-'+id).slideDown();
},
function(){
var id = $(this).attr('id').split('-')[1];
timer = setTimeout(function() { $('#submenu-'+id).slideUp(); },1000);
}
);
$('.moduletable-subNav ul').hover(
function(){
clearTimeout(timer);
},
function(){
var id = $(this).attr('id');
timer = setTimeout(function() { $('#'+id).slideUp(); },1000);
}
);
});
我的HTML:
<div class="moduletable">
<ul class="menu" id="nav">
<li class="item-109 current active parent"><a href="/tenc2012/burgerlijkrecht" >Burgerlijkrecht</a></li>
<li class="item-110 parent"><a href="/tenc2012/strafrecht" >Strafrecht</a></li>
<li class="item-108"><a href="/tenc2012/bestuursrecht" >Bestuursrecht</a></li>
</ul>
</div>
<div class="moduletable-subNav">
<ul class="menu" id="submenu-109">
<li class="item-114"><a href="/tenc2012/burgerlijkrecht/burgelijk-recht-deel-1" >Burgelijk recht deel 1</a></li>
</ul>
<ul class="menu" id="submenu-110">
<li class="item-117"><a href="/tenc2012/strafrecht/strafvordering" >Strafvordering</a></li>
</ul>
</div>
我有时使用的一种技巧是稍微作弊,并使用“rel”或其他未使用的属性来传递类似的信息。尝试设置:
<li ... rel="109">
有点像黑客,但做起来相当简单
编辑
使用karim79“数据编号”建议的示例:
<li ... data-number="109">
我有时使用的一种技巧是作弊,并使用“rel”或其他未使用的属性来传递类似的信息。尝试设置:
<li ... rel="109">
有点像黑客,但做起来相当简单
编辑
使用karim79“数据编号”建议的示例:
<li ... data-number="109">
不确定我是否跟随你,但你想:
$('#nav li[class="item-109"]')
如果你想知道电话号码,我想你可以打个电话
$(this).attr('class').replace(/[^\d]/g, "");
或者更安全一点
$(this).attr('class').replace(/^.*(item\-\d+)$/, "$1");
不确定我是否跟随你,但你想:
$('#nav li[class="item-109"]')
如果你想知道电话号码,我想你可以打个电话
$(this).attr('class').replace(/[^\d]/g, "");
或者更安全一点
$(this).attr('class').replace(/^.*(item\-\d+)$/, "$1");
这就是我想到的:
var classes = $('li[class^="item-]"').prop('class').split('\s');
var theClass;
$.each(classes, function(){
if (this.match(/^item-/))
theClass = this;
});
这就是我想到的:
var classes = $('li[class^="item-]"').prop('class').split('\s');
var theClass;
$.each(classes, function(){
if (this.match(/^item-/))
theClass = this;
});
试试这个:
var classes = $('#my_element').attr('class').split(" ");
var item_class = $(classes).filter(function(a,i) {
return i.match(/item\-[0-9]+/);
});
console.log(item_class);
试试这个:
var classes = $('#my_element').attr('class').split(" ");
var item_class = $(classes).filter(function(a,i) {
return i.match(/item\-[0-9]+/);
});
console.log(item_class);
我不明白这个问题-你能更好地解释你检索类的意思吗?您的意思是检索具有该类的项吗?“拥有多个类”是什么意思?您应该使用
项blahblah
“标识符”作为每个LI的ID,或者只是将数字部分作为数据
属性存储在元素中,以便更简单地实现。添加的类xxx
在哪里?最好将标识符放在id
或data
属性中,以便于以后检索。类应该对元素进行分组,而不是单独标识它们。我不理解这个问题-你能更好地解释检索类的含义吗?您的意思是检索具有该类的项吗?“拥有多个类”是什么意思?您应该使用项blahblah
“标识符”作为每个LI的ID,或者只是将数字部分作为数据
属性存储在元素中,以便更简单地实现。添加的类xxx
在哪里?最好将标识符放在id
或data
属性中,以便于以后检索。类应该对元素进行分组,而不是单独标识它们。或者使用数据属性来代替data number=“109”
(这就是它们的作用)。啊,是的,这将更符合标准。rel
在HTML中经常被误用,实际上,它在大多数元素上无效。使用Joomla中的模板覆盖,我将其打印为数据编号=“###”。现在使用:)谢谢!或者改为数据属性data number=“109”
(这就是它们的用途)。啊,是的,这将更符合标准。rel
在HTML中经常被误用,而事实上,它在大多数元素上都是无效的。在Joomla中使用模板覆盖,我将其打印为数据编号=“###”。现在使用:)谢谢+1是的,请再说一遍,为什么这么多Jquery只是为了做一件简单的事情。哈哈,你已经有了很棒的方式+所有其他3种方式上下。使用prop
会很好。+1是的,请再说一遍,为什么这么多Jquery只是为了做一件简单的事情呢。使用prop
会让它变得很好。