let num = prompt('Введите трехзначное число');
let sum = 0;
let digit;
let valid = true; // создадим переменную для хранение валидно / не валидно
for ( let i = 0; i < num.length; i++){
digit = parseInt(num[i]);
if (digit){
sum = sum + digit;
} else{
valid = false; // зададим значения не валидно
alert('Ввыдите только числа');
}
}
// проверим и выведим сумму только если ввод был валиден
valid ? alert(sum) : null; // if ( valid ) { alert(sum) }
.line {
height: 10px;
background-color: #333;
}
// полагаю, вы получаете с сервера нечно такое:
const data = [
{
weight: '76'
},
{
weight: '54'
},
{
weight: '30'
}
]
// находим максимум
const maxWeight = Math.max.apply(null, data.map( item => +item.weight ))
// относительно максимума высчитываем проценты
const percents = data.map( item => {
return +item.weight / maxWeight * 100
})
// генерируем линии
const generateLine = percents => {
return percents.map( percent => {
return `
<div style="width:${percent}%" class="line"></div>
`
}).join('')
}
// делаем функцию для рендеринга
const render = html => {
document.body.innerHTML = html
}
// рендерим
render( generateLine( percents ) )
<form id="form-id">
<input type="text" name="some_name" value="">
<input type="text" name="some_name2" value="">
<button type="submit">Отправить</button>
</form>
window.onload = e => {
const form = document.querySelector('#form-id')
const formHandler = e => {
e.preventDefault()
const formData = new FormData( e.target )
console.log(...formData)
}
form.addEventListener('submit', formHandler)
}
<div class="class1 class2">some elem</div>
<button class="btn">toggle</button>
window.onload = e => {
// получаем элементы
const $div = document.querySelector('.class1')
const $btn = document.querySelector('.btn')
// функция, переключающая класс ( нужна для демонстрации )
const toggle = e => $div.classList.toggle('class2')
// функция, которая будет выполняться при изменении атрибутов у $div
const obsCallback = ( ml, ob ) => {
// за место вывода в консоль после проверки на существование класса подставляем нужные функции
ml[0].target.classList.contains('class2') ? console.log(true) : console.log(false)
}
// создание обсервера и передача нашей функции
const observer = new MutationObserver(obsCallback)
// опции (за чем будем следить)
const observerOptions = {
childList: false,
attributes: true,
subtree: false
}
// начинаем наблюдать
observer.observe($div, observerOptions)
// просто повесил событие на кнопку чтобы менять класс у $div
$btn.addEventListener('click', toggle)
}
const serverData = [
{
answ1: 'text 1',
answ2: 'text 2',
answ3: undefined
},
{
answ1: undefined,
answ2: 'text 2',
answ3: undefined
}
]
const clearData = serverData
.map( item => Object.values( item ) )
.filter( item => item !== undefined )
console.log(clearData)
<textarea id="text">some text inside</textarea>
window.onload = e => {
// получить элемент по id
const textarea = document.getElementById( 'text' )
// получить текущее значение
console.log( textarea.value )
// установить новое значение
textarea.value = 'new textarea text'
}
const arr = [1,2,3,4,5,6]
let num = 10
let index = 3
while ( num > 0 ) {
if ( !arr[index] ) {
index = 0
}
arr[index] += 1
index++
num--
}
console.log( arr )
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table id="some-table">
<thead>
<tr>
<th>Наименование</th>
<th>Описание</th>
<th>Количество</th>
<th>Действия</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</body>
</html>
window.onload = () => {
const table = document.getElementById('some-table')
const tableBody = table.querySelector('tbody')
let serverData = [
{
id: parseInt( Math.random() * 1000 ),
name: 'name 1',
description: 'description 1',
qnt: '5'
},
{
id: parseInt( Math.random() * 1000 ),
name: 'name 2',
description: 'description 2',
qnt: '2'
},
{
id: parseInt( Math.random() * 1000 ),
name: 'name 2',
description: 'description 2',
qnt: '8'
}
]
const render = html => tableBody.innerHTML = html
const template = data => {
return data.map( item => {
return `
<tr>
<td>${ item.name }</td>
<td>${ item.description }</td>
<td>${ item.qnt }</td>
<td><button data-id="${ item.id }" data-action="remove">Удалить</button></td>
</tr>
`
}).join('')
}
const rmv = id => {
serverData = serverData.filter( item => item.id !== parseInt( id ) )
}
const tableHandler = e => {
const $el = e.target
switch( $el.dataset.action ) {
case 'remove':
rmv( $el.dataset.id )
break
}
render( template( serverData ) )
}
const run = () => {
render( template( serverData ) )
table.addEventListener( 'click', tableHandler )
}
run()
}
setTimeout(() => {
$(this).css('border-color', 'none');
},1000);
var that = this;
setTimeout( function() {
$(that).css('border-color', 'none');
},1000);