JQuery удалить () эквивалент в чистом JS? - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь удалить код jquery и преобразовать его в чистый js

//old code in jquery
const item = $('[type=item]')
item.text() === '' && $(item).remove()

//new code without jquery
const item = document.querySelector('[type="item"]')
item.innerText === '' && item.parentNode.removeChild(item) // this is problem

Но я получил другое поведение при использовании второго блока кода, полагаю, что я неправильно использую removeChild.

Ответы [ 2 ]

1 голос
/ 22 октября 2019

Разница в том, что jQuery удаляет все элементы, которые соответствуют селектору, а чистый JS (в вашей версии) удаляет первый найденный узел. Чтобы удалить все , вы можете сделать что-то вроде этого.

const item = document.querySelectorAll('[type=item]');
for(let i=0,it;it=item[i];++i){
    it.innerText === '' && it.parentNode.removeChild(it);
}
0 голосов
/ 22 октября 2019
function remove(element) {
element.parentNode.removeChild(element); 
}

и используйте его как

<div>
<a href="#" onClick="remove(this.parentNode)">...</a>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...