Jquery: вставить элемент в строку HTML?

0

У меня есть следующая строка HTML

<div class="row">
    <div class="col-sm-4">
    content
    </div>
    <div class="col-sm-4">      
    content
    </div>
    <div class="col-sm-4">
    contnt
    </div>
</div>
<div class="row">
    <div class="col-sm-4">
    content
    </div>
    <div class="col-sm-4">      
    content
    </div>
</div>

Я хочу вставить

<div class="col-sm-4">content</div>

в конце второго ряда (перед закрывающим тегом div), так что вторая строка имеет три элемента.

Я пробовал много вещей, используя JQuery для выполнения этой задачи, но я не могу это сделать. Последнее, что я пробовал, следующее: предположим, что длинный html хранится в HTML и вставляемый PIECE.

$(HTML).find('.col-sm-4').last().after(PIECE);

Может кто-нибудь мне помочь? Для этого должен быть JQuery.

ОБНОВЛЕНИЕ: еще одна вещь, которую я забыл сказать:

Количество строк не фиксировано. Я хочу, чтобы PIECE был вставлен в последнюю строку. Обратите внимание, что длинная строка HTML НЕ является частью страницы. Это просто строка, хранящаяся в переменной Javascript. Мне нужно вставить

class="col-sm-4">content</div>

внутрь. В моих многочисленных тестах я считаю, что это довольно сложно.

Благодарю!

  • 0
    Ваш пример неясен, у вас есть строка HTML или содержание HTML?
  • 0
    HTML-строка, а не DOM (часть страницы) Мне нужно вставить <div class = "col-sm-4"> content </ div> в строку. Извините, что я не достаточно ясно.
Показать ещё 2 комментария
Теги:

3 ответа

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

Вот один из способов сделать это.

$('.row:last').append(PIECE);

См. Скрипку: http://jsfiddle.net/tu935/ он работает.

HTML.replace(/<\/div>$/,PIECE+'</div');
  • 0
    Это не работает. Благодарю.
  • 1
    новая скрипка для строки: jsfiddle.net/tu935/1
Показать ещё 2 комментария
1

Назначьте идентификатор строке, в которую вы хотите добавить ребенка, чтобы это было так:

<div class="col-sm-4" id="test">content</div>

Затем добавьте это в javascript:

$('#test').find(':last').after('<div class="col-sm-4">content</div>');
OR
$('#test').append('<div class="col-sm-4">content</div>');

И попытайтесь использовать span внутри divs, если возможно

  • 0
    Спасибо за участие! Я не могу изменить длинный HTML. Это передано из другого места.
1

Вы можете использовать:

$('.row').eq(1).find(':last').after('<div class="col-sm-4">content</div>');

Демо-версия скрипта


Основываясь на вашем комментарии, вы можете:

$('.row').last().find(':last').after('<div class="col-sm-4">content</div>');
  • 0
    Спасибо! Я забыл сказать следующее: количество строк не фиксировано.
  • 0
    Итак, вы хотите добавить третий элемент в те строки с классом row которые имеют только два элемента?
Показать ещё 6 комментариев

Ещё вопросы

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