如何使用jquery获取类名?

时间:2010-01-25 01:45:06

标签: javascript jquery

嘿,我想知道如何使用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>

对此有任何帮助都很棒,谢谢。

3 个答案:

答案 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');