SELECT `date`
FROM `foo`
WHERE `id` >= (
SELECT `id`
FROM `foo`
WHERE `date` < now()
ORDER BY `id` DESC
LIMIT 1
)
SELECT t2.s1
FROM (
SELECT
t1.id,
t1.s1,
IF (@max = 1, @max := t1.seq, @max := @max) AS "max1",
IF (t1.seq = 1, @max := 1, @max := @max) AS "max2"
FROM (
SELECT
(SELECT @id := @id + 1) AS "id",
s1,
IF (s1 = @prev + 1, @seq := @seq + 1, @seq := 1) AS "seq",
(SELECT @prev := s1) AS "prev"
FROM `table`,
(SELECT @id := 0, @seq := 0, @prev := null) AS init
) AS t1,
(SELECT @max := 1) AS init
ORDER BY t1.id DESC
) AS t2
WHERE t2.max1 >= 3
ORDER BY t2.id
s1 | n
1 3
2 3
3 3
7 1
12 1
22 2
23 2
5 4
6 4
7 4
8 4
SELECT s1 FROM `table` WHERE n > 2
<div data-num="2350" data-step="5" class="number">0</div>
$(window).scroll(function() {
var $win = $(window);
if ($('#counter').offset().top < $win.scrollTop() + 200) {
$win.off('scroll');
$('.number').addClass('viz').each(function() {
var
i = 0,
num = +this.dataset.num,
timeStep = 1000 / num,
valStep = +this.dataset.step || 1,
interval = setInterval(function($el) {
if ((i += valStep) >= num) {
clearInterval(interval);
}
$el.html(Math.min(i, num));
}, timeStep, $(this));
});
}
});
var steps = 100;
$(window).scroll(function() {
var $win = $(window);
if ($('#counter').offset().top < $win.scrollTop() + 200) {
$win.off('scroll');
$('.number').addClass('viz').each(function() {
var
i = 0,
num = +this.dataset.num,
valStep = num / steps,
interval = setInterval(function($el) {
if ((i += valStep) >= num) {
clearInterval(interval);
}
$el.html(Math.floor(Math.min(i, num)));
}, 20, $(this));
});
}
});
querySelectorAll
возвращает коллекцию элементов, никакого addEventListener
у неё нет - его надо вызывать отдельно у каждого элемента.e.classList
? e
- это объект события, а не элемент DOM-дерева.const elems = document.querySelectorAll('nav#menu_3 > ul > li');
elems.forEach(n => n.addEventListener('mouseover', onMouseover));
function onMouseover() {
elems.forEach(n => {
n.classList.toggle('zoomed', this === n);
n.classList.toggle('nozoomed', this !== n);
});
}
INSERT INTO Items SET `itemid` = 'SELECT MAX(`itemid`) FROM `Items`', ...
(SELECT MAX(`itemid`) FROM `Items`)
INSERT INTO Items(itemid, title, type)
SELECT MAX(itemid), <значение для title>, <значение для type> FROM Items
connection.query('INSERT INTO Items(itemid, title, type) SELECT MAX(itemid), ?, ? FROM Items', [ data.title, data.group ])
<a href="#" class="menu-trigger" data-list="#menu">Menu</a>
<a href="#" class="menu-trigger" data-list="#contacts">Contacts</a>
<ul id="menu" class="list">...</ul>
<ul id="contacts" class="list">...</ul>
$('.menu-trigger').click(function() {
var list = this.dataset.list;
$(this).parent().find('.list').not(list).slideUp(0);
$(list).slideToggle(500);
});
$(window).resize(function() {
if ($(window).width() > 500) {
$('.list').removeAttr('style');
}
});
думал через Foreach в foreach, но не пашет
foreach ($arr as $val) {
foreach ($val['items'] as $item) {
// хватаем item_code, например: $item['item_code']
}
}
$('селектор кнопки').click(function() {
$('селектор-элементов')
.not('.класс')
.slice(0, количествоЭлементовКоторымНадоДобавитьКласс)
.addClass('класс');
});
const items = [...document.querySelectorAll('селектор элементов')];
document.querySelector('селектор кнопки').addEventListener('click', () => {
items
.splice(0, количествоЭлементовКоторымНадоДобавитьКласс)
.forEach(n => n.classList.add('класс'));
});
пытался получить так:
console.log($('.wall_post_text', this)).innerText;
Но пишет undefined
.innerText
надо внутри внешних скобок было разместить, а так вы у результата вызова console.log
хотите свойство прочитать (и получаете вы никакой не undefined
, а ошибку "cannot read properties of undefined").innerText
надо получать у DOM-элемента, а не jquery объекта. Ну или замените обращение к свойству на вызов метода.$('.wall_post_text', this)[0].innerText
// или
$('.wall_post_text', this).get(0).innerText
// или
$('.wall_post_text', this).prop('innerText')
// или
$('.wall_post_text', this).eq(0).text()
// или
$('.wall_post_text:eq(0)', this).text()
// или, если элемент .wall_post_text внутри this один
$('.wall_post_text', this).text()
return json_encode($result)
наверное должно быть что-то вроде echo json_encode($result)
. Также непонятно, почему никак не обрабатывается ситуация, когда name и email отсутствуют.header('Content-Type: application/json');
. Всё-таки json возвращаете.?>
тоже не помешает - чтобы случайно не добавлять пробелы/пустые строки в ответ.dataType: "html"
было бы неплохо заменить на dataType: "json"
- по получении ответа не придётся вызывать parseJSON, response будет объектом. в чем тут логика?
(function() {
'use strict';
var func = function() { console.log(this); };
func.call(null); // выведет null
})();
var
path = 'aaa.bbb.ccc.ddd',
data = {
aaa: {
bbb: {
ccc: {
ddd: 'Hello!!'
}
}
}
};
console.log(path.split('.').reduce((p, c) => p[c], data)); // Hello!!
background: linear-gradient(to right, transparent 10%, red 30%, red 70%, transparent 90%);
The second assignment in the following statement sets col2 to the current (updated) col1 value, not the original col1 value. The result is that col1 and col2 have the same value. This behavior differs from standard SQL.UPDATE t1 SET col1 = col1 + 1, col2 = col1;