Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.02.2018, 13:38
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Почему не отрабатывает замена одного элемента другим ?
Добрый день уважаемые. Подскажите пожалуйста почему не срабатывает функция .replaceWith в этом маленьком примере
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>title</title>
</head>
<body>
<img class="myPicture" src="" alt="picture">
<img class="myPicture" src="" alt="picture">

<script>
window.onload = function(){
var svgPicture = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect x="60" y="10" rx="10" ry="10" width="30" height="30" stroke="black" fill="#f00" stroke-width="5"/></svg>'
var myImg = document.querySelectorAll(".myPicture");
myImg[1].replaceWith(svgPicture);
}
</script>
</body>
</html>

Необходимо второе фото после загрузки заменить на svg вставку? Что не так? Как исправить ?
Ответить с цитированием
  #2 (permalink)  
Старый 11.02.2018, 13:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

.replaceWith - стоит ли, ведь в JS, в отличии от JQ, этот метод не все браузеры поддерживают?
Ответить с цитированием
  #3 (permalink)  
Старый 11.02.2018, 14:04
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Я пока не нашёл другой аналогичной функции. Если есть предложения, я готов выслушать Этот метод пока не рабочий для чистого JS
Ответить с цитированием
  #4 (permalink)  
Старый 11.02.2018, 14:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Black_Star
Если есть предложения, я готов выслушать
Не слушать, а читать.
Ответить с цитированием
  #5 (permalink)  
Старый 11.02.2018, 16:03
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Спасибо, за доки но чёт я где-то туплю
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>title</title>
</head>
<body>
<img class="myPicture" src="" alt="picture">
<img class="myPicture" src="" alt="picture">
 
<script>
var svgPicture = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect x="60" y="10" rx="10" ry="10" width="30" height="30" stroke="black" fill="#f00" stroke-width="5"/></svg>';

var imgSvg = document.createElement('div');
imgSvg.innerHTML = svgPicture;

var myImg = document.querySelectorAll(".myPicture");
myImg[1].parentNode.replaceChild(imgSvg,myImg[1]);

</script>
</body>
</html>

Оно выводит, но вот как избавиться от div-а обертки я пока не могу придумать. Мне просто один элемент надо менять на другой

Последний раз редактировалось Black_Star, 11.02.2018 в 16:26.
Ответить с цитированием
  #6 (permalink)  
Старый 11.02.2018, 19:15
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>title</title>
</head>
<body>
<img class="myPicture" src="" alt="picture">
<img class="myPicture" src="" alt="picture">
 
<script>
var svgPicture = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect x="60" y="10" rx="10" ry="10" width="30" height="30" stroke="black" fill="#f00" stroke-width="5"/></svg>';

document.querySelectorAll(".myPicture")[1].outerHTML = svgPicture;

</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать обработчики событий с одного элемента на другой. Jurasmi Events/DOM/Window 3 10.11.2010 19:03
jQuery, load: замена элемента вырубает js на странице. warobushek AJAX и COMET 0 08.10.2010 07:44
Замена текста элемента label сщдержащего другие элементы kostepanych Events/DOM/Window 5 26.11.2009 00:02
Замена элемента со всеми потрохами Diem Events/DOM/Window 10 29.07.2009 21:03
Стрелка от одного элемента ко второму SOTON jQuery 4 12.07.2009 01:51