2010-01-25 8 views
0

Эй, мне интересно, как я могу получить имена классов динамически, используя 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(); 

Как вы можете видеть класс «Майни» закодирована и им не знаете, как получить имя класса динамически и правильно поместите его в скрипт.

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

Держать его динамически, откуда? Вам просто нужно, чтобы он был глобальным js var? – Jage

+0

Взгляните на примеры для hasClass() addClass() removeClass() и toggleClass() –

ответ

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"] 
2

Использование JQuery, чтобы получить это имя класса работает следующим образом:

$('#main-info-1').attr('class'); 
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'); 
Смежные вопросы