DISABLING AND REMOVING
If you want to disable plot temporarily use the enabled() method, the series and settings will stay there once you enable plot again.
To remove plot with all its contents and settings use the dispose() method.
REMOVING SERIES
As far as any chart can be adjusted or added at any time, you can also remove any series. If you know the id of the series that should be removed, invoke removeSeries() method and use series id as a parameter for this method. In the situation, when the series has no id it can be removed using removeSeriesAt() method. removeSeriesAt() method uses series index as a parameter and removes the series with the given index.
$('.image-upload:nth-child(' + номер_интупа_начиная_с_единицы + ')').val('');
$('.image-upload')[номер_интупа_начиная_с_нуля].val('');
onclick="window.location.reload(); return false;"
tasks.push(data); // тут вставили очередной элемент
let task_index = tasks.length - 1; // узнаем его индекс по длине массива, так как он в текущей ситуации последний
// несколько строк спустя
b1.addEventListener("click",
(function(inner_task_index) // функция-обертка для изоляции контекста, сюда передается значение task_index, я специально выделил его другим именем inner_task_index, чтобы видеть контекст функции-обертки
{
// обертка возвращает функцию-обработчик события для addEventListener
return function delFromLocalSt() {
task.removeChild(li);
let array = JSON.parse(localStorage.getItem('task'));
array.splice(inner_task_index, 1); // удаляем элемент по известному индексу используя механизм замыкания, используя контекст функции обертки
localStorage.setItem('task', JSON.stringify(array));
}
})(task_index) // вызываем хитрую обертку, чтобы обеспечить изоляцию переменной от контекста функции createEl
);
let elem_count = elems.length;
for(let i = 0; i < elem_count; i++)
{
let elem = elems[i];
// что-то сделать с elem
}
let elem = document.querySelector('.elem'); // Берем нужный контейнер
elem.addEventListener('click' , function(e) // вешаем обработчик только на elem, за счет всплытия события, обработчик будет срабатывать на всех дочерних элементах
{
alert('k');
});
document.addEventListener('click' , function(e)
{
let elem = document.querySelector('.elem');
if( e.target == elem // кликнули на сам контейнер elem
|| e.target.tagName == 'SPAN' && e.target.parentNode == elem // или кликнули на какой-то элемент span, непосредственный родитель которого есть наш контейнер elem
)
{
alert('k');
}
})
for( let post of _data)
{
let body = post.body;
// что-то сделать с body
for(let block of body.blocks)
{
// что-то сделать с block
for(let curr_data of block.data)
{
// что-то сделать с data в block
}
// что-то сделать с block
}
// что-то сделать с body
}
class DeviceController {
getItems = async (query) => {
let { brandId, typeId, limit, page, } = req.query
page = page || 1
limit = limit || 9
let offset = page * limit - limit
let devices;
if (!brandId && !typeId) {
devices = await Product.findAndCountAll({ limit, offset })
}
return devices
};
getAllForClient = async (req,res) => {
let newList=[]
let devices=await this.getItems(req.query)
for (let index = 0; index < devices.length; index++) {
let newItem={
name:devices[index].name,
price:devices[index].price,
videoUrl:devices[idnex].videourl
}
newList.push(newItem)
}
return res.json(newList)
}
}
var container = document.getElementById('какой-то-id-контейнера-куда-вывести');
container.innerHTML = "<p style='text-align: center'>User info:</p>\
<table>\
<tr><td>Name:</td><td>" + response.name + "</td></tr>\
<tr><td>Username:</td><td>" + response.username + "</td></tr>\
<tr><td>Address:</td><td>" + response.address.city + ", " + response.address.street + "</td></tr>\
<!-- И дальше в таком же духе -->\
</table>";
полоски прогресса и таймера в отдельный поток?
document.styleSheets[i].rules[j].selectorText
document.styleSheets[i].rules[j].style['имя_свойства'] = значение_свойства;
viewsHandler(elementClass){
let data = this.data.htmlBlocks[elementClass].views;
let now = new Date().getTime();
if ( data.lastView && now - data.lastView / 1000 > 15 ) {
data.views = views.count++; // views который справа за пределами функции?
data.lastView = now;
}
} else {
data.views = 2;
data.lastView = 1;
}
}
}
Выделите ошибку и нажмите одновременно клавиши «Ctrl» и «Enter»
btn_send.addEventListener('click',async() => {
let blob = await new Promise(resolve => canvasElem.toBlob(resolve, 'image/png'));
let formData = new FormData(); // Создаем объект формы для наполнения данными, словно мы работаем с тегом form в html.
formData.append('canvas_field', blob, 'canvas.png'); // это эквивалент тому, что в нашей html форме создаем поле input type="file" name="canvas_field" value="canvas.png" и прикрепляем туда содержимое blob (метод append сам расшаривает blob, дополнительных преобразований не требуется). Естественно, на DOM-дереве это никак не отразится, это модель формы в памяти JS.
let response = await fetch('web_tp_word.php', {
method: 'POST',
body: formData // для fetch не нужно дополнительных параметров, чтобы объяснить как работать с formData. Идеально, чтобы завернуть файл в форму и отправить на сервер.
});
});
var_dump($_FILES['canvas_field']); // Сервер при вызове скрипта сложит данные файла во временный файл, а как их получить - в $_FILES. Далее можно обрабатывать всеми теми способами, предназначенные для работы с $_FILES. И после уже неважно, как их сгенерировали на клиенте.
...args
arguments
какая из реализаций лучше?