let newPage = await browser.newPage();
try {
await newPage.goto(link);
dataObj['text'] = await newPage.$eval('.block', div => div.textContent);
} catch(er) {
await newPage.close();
// await browser.close(); // для наглядности
//console.error(er); // показать ошибку в консоле
}
const attrName = 'data-i';
const attrValues = [ 'qwe', 'asd', 'zxc' ];
const className = 'класс';
document
.querySelectorAll(attrValues.map(n => `[${attrName}="${n}"]`))
.forEach(n => n.classList.add(className));
document.querySelectorAll(`[${attrName}]`).forEach(n => {
n.classList.toggle(className, attrValues.includes(n.getAttribute(attrName)));
});
const itemSelector = '.parent';
const className = 'xxx';
document.querySelectorAll(itemSelector).forEach(n => {
n.addEventListener('mouseenter', onHover);
n.addEventListener('mouseleave', onHover);
});
function onHover(e) {
const state = e.type === 'mouseenter';
for (
let el = this;
(el = el.nextElementSibling) && !el.matches(itemSelector);
el.classList.toggle(className, state)
) ;
}
.parent
, чтобы создать видимость, будто бы стили не применялись:.parent:hover ~ .child {
...
}
.parent:hover ~ .parent ~ .child {
...
}
<div class="buttons">
<div class="row">
<button class="parent">...</button>
</div>
<div class="row">
<button class="parent">...</button>
<button class="child">...</button>
<button class="child">...</button>
<button class="child">...</button>
<button class="child">...</button>
</div>
<div class="row">
<button class="parent">...</button>
<button class="child">...</button>
<button class="child">...</button>
<button class="child">...</button>
</div>
<div class="row">
<button class="parent">...</button>
</div>
</div>
const inputs = document.querySelectorAll('form input');
// или
const inputs = document.forms[0].elements;
// или
const inputs = document.querySelector('form').getElementsByTagName('input');
const getName = el => el.name;
// или
const getName = el => el.getAttribute('name');
// или
const getName = el => el.attributes.name.value;
const names = Array.from(inputs, getName);
// или
const names = [].map.call(inputs, getName);
// или
const names = [];
for (const n of inputs) {
names.push(getName(n));
}
// или
const names = [];
for (let i = 0; i < inputs.length; i++) {
names[i] = getName(inputs[i]);
}
var ajaxEdit = function() {
var form_data = new FormData();
form_data.append('file', $('input[name=picture]').prop('files')[0]);
form_data.append('id', $('input[name=id]').val());
form_data.append('name', $('input[name=name]').val());
$.ajax({
url: 'functions.php',
type: 'POST',
dataType: 'html',
data: form_data
})
.done(function() {
ajaxShow(section);
})
.fail(function() {
console.log("error");
});
}
var selectCategory = function(gender){
$("#"+gender).click(function(event) {
$('section').removeClass('show');
$("."+gender).addClass('show');
});
}
var loadCategory = function(options){
$("."+options.gender+" #"+slug).click(function(event) {
$.ajax({
url: 'output.php',
data: { gender: gender, category: options.slug},
})
.done(function(data) {
$('section').removeClass('show');
$(".items-list").addClass('show');
$(".items-list .title").text(options.title);
$(".items-list .items").text(data);
})
.fail(function() {
console.log("error");
});
});
}
selectCategory('male');
selectCategory('female');
loadCategory({slug: 'footwear', gender: 'male', title: 'Male footwear'});
loadCategory({slug: 'sneakers', gender: 'male', title: 'Male sneakers'});
loadCategory({slug: 'clothes', gender: 'male', title: 'Male clothes'});
loadCategory({slug: 'footwear', gender: female', title: 'Male footwear'});
loadCategory({slug: 'sneakers', gender: 'female', title: 'Male sneakers'});
loadCategory({slug: 'clothes', gender: 'female', title: 'Male clothes'});
function filter($twig,$filterName,$filter){
$items = mysql_query("SELECT * FROM `items` WHERE {$filterName} = '{$filter}'");
$list = []; // создаем пустой
while ($row = mysql_fetch_array($items)){
$list[] = $row;
};
if (!empty($list)) {
echo $twig->render('list.html', ['items' => $list]);
} else {
echo "ААААа-а-а-а-а!!!!!11 Все пропало!";
}
}
setInterval
а не setTimeout
?$('#callModal').modal('open');
если не нужно закрывать модальное окноclearInterval(timerID)