Элемент - представленный в примере - это FileInput (кликать нужно на него, что бы вызвать диалог выбора файлов)
const imgs = document.querySelectorAll('img[src*="/test/"]');
это не в dom, а в строке
const div = document.createElement('div');
div.innerHTML = str;
const imgsStr = ''.concat(...[].map.call(
div.querySelectorAll('img[src*="/test/"]'),
n => n.outerHTML
));
const imgsStr = Array
.from(
new DOMParser().parseFromString(str, 'text/html').querySelectorAll('img[src*="/test/"]'),
n => n.outerHTML)
.join('');
const imgsStr = Array.prototype.reduce.call(
document.createRange().createContextualFragment(str).querySelectorAll('img[src*="/test/"]'),
(acc, n) => acc + n.outerHTML,
''
);
мне нужно удалить из этой строки все картинки, которые...
const div = document.createElement('div');
div.innerHTML = str;
const imgs = div.querySelectorAll('img[src*="/test/"]');
for (let i = 0; i < imgs.length; i++) {
imgs[i].outerHTML = '';
}
str = div.innerHTML;
const { body } = new DOMParser().parseFromString(str, 'text/html');
body.querySelectorAll('img[src*="/test/"]').forEach(n => n.remove());
str = body.innerHTML;
const fragment = document.createRange().createContextualFragment(str);
for (const n of fragment.querySelectorAll('img[src*="/test/"]')) {
n.parentNode.removeChild(n);
}
str = Array.from(fragment.childNodes, n => n.outerHTML || n.nodeValue).join('');
Как программно получить индексы Ряда и Ячейки для строки кода
this.showPillarHandler(p.data[индекс Ряда].data[индекс Ячейки]) ?
showMachine={this.showPillarHandler}
.showShelfMachine={showMachine}
.showPlaceMachine={showShelfMachine}
.onClick={() => showPlaceMachine(seat)}
.computed: {
groupedPosts() {
return this.posts.reduce((acc, n) => {
(acc[n.category] = acc[n.category] || []).push(n);
return acc;
}, {});
},
},
При нажатии на название категории хочу выводить посты и соответствующего массива.
categories() {
return Object.keys(this.groupedPosts);
},
data: () => ({
activeCategory: null,
...
<button
v-for="n in categories"
v-text="n"
:class="{ active: n === activeCategory }"
@click="activeCategory = n"
></button>
<div v-if="activeCategory">
<div v-for="n in groupedPosts[activeCategory]" class="post">
...
Я тут начинаю изучать php с фреймворка yii2
function onlyOne({ value, dataset: { group } }) {
document.querySelectorAll(`[data-group="${group}"]`).forEach(n => {
n.checked = n.checked && n.value === value;
});
}
todoList.forEach(function(element) {
document.getElementById('out').innerHTML += '<p>'+element+'</p>';
});
document.getElementById('out').innerHTML = todoList.map(n => `<p>${n}</p>`).join('');
const div = document.createElement('div');
div.innerHTML = html;
div.querySelectorAll('a[href*="/test/"]').forEach(n => n.outerHTML = '');
html = div.innerHTML;
const { body } = new DOMParser().parseFromString(html, 'text/html');
body.querySelectorAll('a[href*="/test/"]').forEach(n => n.remove());
html = body.innerHTML;
const fragment = document.createRange().createContextualFragment(html);
fragment.querySelectorAll('a[href*="/test/"]').forEach(n => n.parentNode.removeChild(n));
html = Array.from(fragment.childNodes, n => n.outerHTML || n.nodeValue).join('');
function sort(desc, attr) {
const select = document.querySelector('#search-sort-field');
select.append(...Array
.from(select.children, n => [ n, n.getAttribute(attr) * (desc ? 1 : -1) ])
.sort((a, b) => a[1] - b[1])
.map(n => n[0])
);
}
const tbody = document.querySelector('#table tbody');
// или
const [ tbody ] = document.getElementById('table').tBodies;
tbody.innerHTML = arr
.map(n => `
<tr>
<td><a href="${n.link}">${n.city}</a></td>
<td>${n.country}</td>
</tr>`)
.join('');
for (const n of arr) {
const tr = tbody.insertRow();
const a = document.createElement('a');
a.href = n.link;
a.text = n.city;
tr.insertCell().append(a);
tr.insertCell().textContent = n.country;
}
const dialog = new DOMParser().parseFromString(`
<div id="add-note__quick">
<i id="close">×</i>
<input type="text" class="field" placeholder="Событие">
<input type="text" class="field" placeholder="День, месяц, год">
<input type="text" class="field" placeholder="Участники">
<button>Создать</button>
</div>
`, 'text/html').body.querySelector('#add-note__quick');
dialog.querySelector('#close').addEventListener('click', () => {
dialog.parentNode.removeChild(dialog);
});
let selectedTd = null;
document.querySelector('#calendar-body').addEventListener('click', ({ target }) => {
if (target.tagName !== 'TH') {
return;
}
if (selectedTd) {
selectedTd.classList.remove('note');
}
if (selectedTd === target) {
target.removeChild(dialog);
selectedTd = null;
} else {
dialog.querySelectorAll('input').forEach(n => n.value = '');
target.appendChild(dialog);
target.classList.add('note');
selectedTd = target;
}
});
В консоле выдает Uncaught TypeError: next is not a function
Как выделить при помощи класса текущее число, не выходит
добавляю...
tbl.innerHTML = '';
перед циклом.currDay.getMonth() <= month
. Представьте, что следующий месяц - январь, год кончается. Что будет с вашим условием? Правильно, оно останется истинным. Навсегда. Лучше сделать так: проверяете равенство, без "меньше", а while заменяете на do-while - тогда числа предыдущего месяца, формально не подходящие под условие, всё равно будут обработаны, так как тело цикла выполняется до проверки условия.str.replace(/^\S+ /, '')
// или
str.match(/(?<= ).+/)[0]
// или
str.split(' ').slice(1).join(' ')
// или
str.slice(str.indexOf(' ') + 1)
document.querySelectorAll('.restab').forEach((n, i) => {
n.id = `responsivetable${++i}`;
});
// или
for (const [ i, n ] of document.querySelectorAll('.restab').entries()) {
n.attributes.id.value = 'responsivetable' + (i + 1);
}
// или
const elems = document.getElementsByClassName('restab');
for (let i = 0; i < elems.length; i++) {
elems[i].setAttribute('id', 'responsivetable'.concat(-~i));
}
Basket.totalPrice.call(data)
. Но, повторюсь, это безумие.