Как удалить id у елемента?

258
22 августа 2017, 15:25

Подскажите, как можно реализовать скрипт, функционал которого позволяет удалить id у элемента при размере дисплея менее 992px?

Answer 1

Пробуем вот так:

let dataId = document.querySelectorAll('[data-id]'); 
let windowEvents = ['load', 'resize']; 
 
Array.from(dataId).forEach(item => { 
  //Для fallback'а сохраняем значение каждого элемента, который имеет аттрибут data-id  
	item.setAttribute('data-id', item.id); 
	Array.from(windowEvents).forEach(event => { 
    //При загрузке или ресайзе страницы выполняем нужные нам операции 
		window.addEventListener(event, () => { 
			if(window.innerWidth < 992) { 
        //Лучше оставить id, но очистить его. 
				item.id = ''; 
			} else { 
        //Если разрешение экрана более 992 - возвращаем значение id из сохраненного в аттрибуте 
				item.id = item.getAttribute('data-id') 
			} 
		}) 
	}) 
})
<div id='big' data-id>Текст</div> 
<div id='small' data-id>Текст</div> 

UPD Код рабтает в Chrome, Mozilla, Edge

Answer 2

Если у вас разрешение дисплея, то можно просто при загрузке определить ширину окна браузера и удалить атрибут:

if (window.screen.width < 992)
{
    document.getElementById("MyElementId").removeAttribute("id");
}

Если же вы имели в виду динамическое изменение размера окна, то можно обернуть это условие в функцию onresize():

window.onresize = function(event) {
   ... //Описанная выше конструкция   
};
READ ALSO
Вставить Blob файл в input[type=&ldquo;file&rdquo;]. Jquery.

Вставить Blob файл в input[type=“file”]. Jquery.

На даний момент я работаю над GUI для админки и столкнулся с такой проблемойЯ принимаю через ajax обьект в таком json(image-масив байтов картинки):

281
Как разместить два независимых друг от друга приложения на Angular4

Как разместить два независимых друг от друга приложения на Angular4

Если добавить на страницу собранное приложение после тега <app-one>, с тегом <app-two>, и добавить бандлы приложения 2, то при запуске вылетает...

228
Как сделать, чтобы в таблице вместо координат выводило адрес маркера?

Как сделать, чтобы в таблице вместо координат выводило адрес маркера?

Есть подключенная карта гуглаПри клике на неё появляется маркер

178
Из Array в псевдомассив

Из Array в псевдомассив

Многие спрашивают, как NodeList, HTMLColletion и другой псевдомассив превратить в ArrayТак мне нужно наоборот

213