jQuery .prepend () используя класс из другого элемента, если он начинается с определенного слова - PullRequest
0 голосов
/ 29 мая 2011

Я хочу добавить предварительно, используя другой класс элементов в элементах, которые будут добавлены.Во избежание путаницы, давайте скажем, что я знаю только то, что в классе родительских элементов в начале есть слово «box», и пусть остальная часть класса генерируется случайным образом.

Поэтому я, очевидно, не могу написать, например:

.prepend('<div class="box-something_more"></div>'); 

Потому что, насколько я знаю, класс родительских элементов может быть «box-ничто» или «box-что-нибудь» или миллионы других вещей.

структура html:

<div class="box-something"> <!-- source of the box- class -->
    <div class="box-something_more"></div> <!-- prepended element -->
    <div class="box-something_evenmore"></div> <!-- prepended element -->

</div>

<div class="box-two"> <!-- source of the box- class -->
    <div class="box-two_more"></div> <!-- prepended element -->
    <div class="box-two_evenmore"></div> <!-- prepended element -->

</div>

Итак, что должно произойти, так это то, что элементам, которые будут добавлены, получат начало своего класса от родительского элемента.

http://jsfiddle.net/tDUpD/2/

Редактировать: это похоже на дело.http://jsfiddle.net/tDUpD/3/

1 Ответ

0 голосов
/ 30 мая 2011

Это делает то, что вы имели в виду? Если нет, пожалуйста, попробуйте сформулировать свой вопрос более четко:

Пример:

HTML

<div class="foo"></div>
<div class="doo"></div>

JS

var childClasses = ["bar", "baz"];

$('.foo, .doo').each(function() {
    var $self = $(this);
    $.each(childClasses, function(i, childClass) {
        $self.append($('<div/>', {
            'class': $self.attr('class') + "_" + childClass
        }));
    });
});

= РЕЗУЛЬТАТ HTML

<div class="foo">
  <div class="foo_bar"></div>
  <div class="foo_baz"></div>
</div>
<div class="doo">
  <div class="doo_bar"></div>
  <div class="doo_baz"></div>
</div>
...