как можно с помощью кнопки добавить перед последним абзацем изображение на языке Javascript?

306
12 ноября 2017, 18:15

как можно с помощью кнопки добавить перед последним абзацем изображение? Что нужно добавлять в ?

Answer 1

Если я что-то правильно понял, то:

Вариант 1

function addImage() { 
    // Создаем новый <img> 
    var img = document.createElement("img"); 
    // добавляем картинку 
    img.src = 'https://icdn.lenta.ru/images/2015/12/15/11/20151215114126414/pic_a8bf01cef0eaf46338e791bf08db72c1.jpg'; 
    var paragraphs = document.querySelectorAll("#wrap p"); 
    // Элемент, перед которым вставить картинку 
    var lastParagraph = paragraphs[paragraphs.length-1]; 
    //Получаем ссылку на родителя testElement 
    var parentDiv = lastParagraph.parentNode; 
 
    // Вставляем img перед последним paragraph 
    parentDiv.insertBefore(img, lastParagraph); 
} 
 
let btn = document.querySelector("button"); 
// Добавляет слушателя событий для таблицы 
btn.addEventListener("click", addImage, false);
<div id="wrap"> 
rewrwe 
<p>sdfsdfsdf</p> 
 
<div>123</div> 
 
<p>Последний абзац</p> 
</div> 
 
<button>нажми мая кнопачка</button>

insertBefore - добавляет элемент в список дочерних элементов родителя перед указанным элементом.

var insertedElement = parentElement.insertBefore(newElement, referenceElement);
  • insertedElement - Вставленный элемент.
  • parentElement - Родитель для нового элемента.
  • newElement - Элемент для вставки.
  • referenceElement - Элемент, перед которым будет вставлен newElement.

Вариант 2

function addImage() { 
  let paragraphs = document.querySelectorAll("#wrap p"); 
  // Элемент, перед которым вставить картинку 
  let lastParagraph = paragraphs[paragraphs.length-1]; 
 
  lastParagraph.insertAdjacentHTML('beforeBegin', '<img src="https://icdn.lenta.ru/images/2015/12/15/11/20151215114126414/pic_a8bf01cef0eaf46338e791bf08db72c1.jpg"/>'); 
 
} 
 
let btn = document.querySelector("button"); 
// Добавляет слушателя событий для таблицы 
btn.addEventListener("click", addImage, false);
<div id="wrap"> 
rewrwe 
<p>sdfsdfsdf</p> 
 
<div id="test">123</div> 
 
 
<p>Последний абзац</p> 
</div> 
 
<button>кнопачка нажми</button>

insertAdjacentHTML - вставляет полученные узлы (nodes) в DOM дерево в указанную позицию.

element.insertAdjacentHTML(position, text);
  1. beforeBegin -- перед elem.
  2. afterBegin -- внутрь elem, в самое начало.
  3. beforeEnd -- внутрь elem, в конец.
  4. afterEnd -- после elem.
READ ALSO
Как в angular 4 делать маску для инпута?

Как в angular 4 делать маску для инпута?

Здравствуйте, к сожалению никак не могу найти как делать маску тектсового инпута в ангуляре, примерно надо сделать такое

234
Как заполнить kendocombox из метода в контроллере используя JQuery

Как заполнить kendocombox из метода в контроллере используя JQuery

Есть проект на mvc4 на форме динамически формируется таблица (заранее кол-во строк не известно), в одной из столбцов таблицы необходимы combobox,...

253
AngularJs. Как подключить отдельный файл

AngularJs. Как подключить отдельный файл

привет есть файл с модулем и контролеромЯ сделал фабрику и хотел бы вынести ее в отдельный файл и подключить ее в модуле

224