嘿,我想知道如何使用jquery为下面的脚本动态获取类名。
HTML输出如下所示:
<div id="main-info-1" class="maini">
<p>this is a paragraph.</p>
</div>
所以,我试图动态地获取类名,而不是像上面那样硬编码。
我需要在jquery脚本中获取类名的两个部分:
1.) pc.children('div.maini').remove();
2.) maini_s = $('div.maini').remove();
正如您所看到的,“maini”类是硬编码的,我不确定如何动态获取类名并将其正确放入脚本中。
jQuery文件:
<script type="text/javascript">
// make them global to access them from the console and use them
// in handlePaginationClick
var maini_s;
var num_of_arts;
var ipp;
function handlePaginationClick(new_page_index, pagination_container) {
var pc = $(pagination_container);
pc.children('div.maini').remove();
for(var i=new_page_index*ipp; i < (new_page_index+1)*ipp ;i++) {
if (i < num_of_arts) {
pc.append(maini_s[i]);
}
}
return false;
}
$(document).ready(function() {
maini_s = $('div.maini').remove();
num_of_arts = maini_s.length;
ipp = 3;
// First Parameter: number of items
// Second Parameter: options object
$("#News-Pagination").pagination(6, {
items_per_page:ipp,
callback:handlePaginationClick
});
});
</script>
对此有任何帮助都很棒,谢谢。
答案 0 :(得分:6)
这取决于你究竟追求的是什么。
您可以使用jQuery或普通javascript获取类名:
// jQuery
$myElement.attr('class');
// javascript
myElement.className
这将为您提供元素的class
属性的字符串值。如果元素具有多个类(例如:<div class="foo bar">
),则上述方法将返回"foo bar"
。如果你想在一个元素上有一个类数组,那么你只需要在空格上分割结果:
var classes = myElement.className.split(/\s+/);
// classes = ["foo", "bar"]
答案 1 :(得分:2)
使用jQuery获取该类名称的方式如下:
$('#main-info-1').attr('class');
答案 2 :(得分:0)
您可以检测,添加和删除类,而无需担心在使用多个类时在空白上拆分。而且还有一个方便的切换:
// toggle example
$('ele').toggleClass('active');
// toggle with optional bool parameter
$('ele').toggleClass('active', isActive );
// detect/add/remove classes without having to split on blank space " "
if ($('ele').hasClass('dull'))
$('ele').removeClass('dull').removeClass('productive');
else
$('ele').addClass('fun').addClass('profitable');