Jquery - Как добавить div с числовым идентификатором, сгенерированным PHP для div с ссылкой на элемент с тем же числовым значением

0

У меня есть проблема с добавлением моих элементов с различным числовым идентификатором к ближайшему div к элементу (link) с тем же числовым значением, что и href? Большое спасибо.

JSFiddle: пример

Мой Jquery Попробуйте без успеха, потому что я застрял:

$('.pagination').each(function(){
        var num_id = $(this).attr('id').match(/\d+/);
        if($('.ui-body h2 a').attr('href').indexOf(num_id) != -1){
            $('.ui-body h2 a').closest('<div>').append($(this));
        }    
});

HTML:

<div id="pagination65" class="pagination"></div> <!-- genereate by php function -->
<div id="pagination26" class="pagination"></div> <!-- same with different number at end -->

<div class="col-bottom-2">
  <div class="ui-body" style="background-color: #FCFCFC;"> <!-- This is div here I need append those div with same ID as href number in link below -->
    <h2 class="main" style="color: #236EE8;">
    <a class="ui-link" href="/cz/cs/65_chystane-akce.html" style="color: #236EE8;"> Chystané akce </a>
    <a class="small ui-link" href="/cz/cs/65_chystane-akce.html" style="color: #236EE8; float:right;"> >> </a>
    </h2>
  </div>
  <div class="ui-body" style="background-color: #F6F6FD;"></div>
  <div class="ui-body" style="background-color: #FCFCFC;"></div>
  <div class="ui-body" style="background-color: #F6F6FD;"></div>
</div>
  • 0
    Вы добавляете еще один элемент класса нумерации страниц? Что вы ожидаете, что $ (это) будет?
Теги:

2 ответа

2
Лучший ответ

У вас есть 1 ошибка и одна незавершенная строка кода.

Вы ошибаетесь в строке 4 вашего JS. Вам не хватает простых или двойных кавычек в селекторе:

$('.ui-body h2 a').closest('<div>').append($(this));

Вы не полный код поступает из части match(). match() возвращает массив совпадений. Поскольку у вас есть только одно совпадение (как не определяя флаг g и только имея один экземпляр цифр), вам нужно сделать num_id[0] в этой строке:

if($('.ui-body h2 a').attr('href').indexOf(num_id[0]) != -1){

Надеюсь, это поможет.

Вы также можете упростить процесс, выполнив следующие действия:

$('.ui-body h2 a[href*=' + num_id[0] + ']').append($(this));

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

Полный код JS:

$('.pagination').each(function () {
    var num_id = $(this).attr('id').match(/\d+/);
    $('.ui-body h2 a[href*=' + num_id[0] + ']').append($(this));
});
  • 0
    Спасибо за пост. Я создаю скрипку, поскольку вы можете видеть, что она все еще не работает: jsfiddle.net/Pd5q2
  • 0
    Я отредактировал свой ответ. Проверьте это, пожалуйста.
Показать ещё 4 комментария
1

В вашем коде были две небольшие проблемы.
1. Ваш num_id возвратил объект, поэтому я разобрал его в int
2. у вас отсутствовали одинарные кавычки в селекторе запросов внутри оператора if

$('.pagination').each(function(){
  var num_id = $(this).attr('id').match(/\d+/);
  num_id = parseInt(num_id[0],10);
  if($('.ui-body h2 a').attr('href').indexOf(num_id) != -1){
    $('.ui-body h2 a').closest('div').append($(this));
  }    
});

увидел это, прежде чем добавить скрипку, вот мой jsbin http://jsbin.com/cajux/1/edit?html,js,output

  • 0
    Спасибо за время и усилия.
  • 0
    Не могли бы вы помочь мне с последней вещью, как добавить этот элемент перед закрытием тега родительского элемента div. Я попробовал этот синтаксис, и он добавляет: $('.ui-body h2 a[href*=' + num_id + ']').parent($('[class^=col-bottom-]')).append($(this)); Он добавляется после close <элемент, а не до close родительского элемента div?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню