Обрабатывать группы элементов HTML с помощью jQuery / Javascript? - PullRequest
1 голос
/ 21 октября 2011

У меня есть страница HTML 5 с несколькими статьями. У каждой статьи есть свой атрибут под названием «MyAttribute»:

<html>
    <article MyAttribute="x">
    <article MyAttribute="y">
    <article MyAttribute="z">
</html>

Я хотел бы создать функцию, которая выполняет что-то вроде следующего псевдокода:

for each article {
    get MyAttribute from the article
    if MyAttribute == x {do this}
    if MyAttribute == y {do that}
    if MyAttribute == z {do something else}
}

Какой самый эффективный способ сделать это с помощью jQuery / JavaScript?

Ответы [ 3 ]

2 голосов
/ 21 октября 2011

Вместо использования пользовательских атрибутов, я бы порекомендовал поместить ваш "MyAttribute" в атрибут data- *, например:

<html>
  <body>
    <article data-myattribute="x"></article>
    <article data-myattribute="y"></article>
    <article data-myattribute="z"></article>
  </body>
</html>

Это создает «более правильный» HTML. Тогда вы бы написали JavaScript следующим образом:

$('article').each(function (){
    switch ($(this).data('myattribute')){
        case 'x':
            //do something for x
            alert('this is case X');
            break;
        case 'y':
            //do something for y
            alert('this is case Y');
            break;
        case 'z':
            //do something for z
            alert('this is case Z');
            break;
    }
 });

Я также создал jsFiddle результата для вас.

1 голос
/ 21 октября 2011

Если вы вставите эти атрибуты на стороне сервера, страница не будет проверена и может вызвать режим причуд в браузере.

Вы можете сделать data-myattribute и затем использовать data ().

$('article').each(function() {

    var MyAttribute = $(this).attr('data-myattribute');

    if (MyAttribute == 'x')
        //code
    else if (MyAttribute == 'y')
        //code
    else if (MyAttribute == 'z')
        //code
});
1 голос
/ 21 октября 2011
$('article').each(function() {
    if (this.MyAttribute == 'x')
        //...
    else if (this.MyAttribute == 'y')
        //...
    else if (this.MyAttribute == 'z')
        //...
    //etc.
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...