удаляются последовательно только теги tr <...> вложенные теги td остаются
table.appendChild(tr); <...> table.appendChild(tdLeft); // "Название" table.appendChild(tdRight); //"Описание" table.appendChild(tdDelete); //"Навигация"
document.addEventListener("DOMContentLoaded", function(event) {
var button = document.getElementById('button');
var qq = document.getElementById('qq');
button.onclick = function (){
qq.style.background = 'green';
};
});
В большинстве случаев наши оценки скорее напоминают желания, чем реалистичные цели. Еще хуже, что мы, похоже, вообще не представляем, как улучшить эту пагубную практику. В результате все гонятся за недостижимыми целями, поставленными в ходе оценки, отчаянно срезая углы и игнорируя хорошие практические приемы, и неизбежное отставание от графика превращается в отставание всей технологии.
Проекты, в которых оценка не делалась вовсе, были лучшими в смысле продуктивности, за ними шли проекты, в которых оценки делали технические специалисты, а наихудшие показатели были у проектов, оцениваемых менеджерами.
var request = new XMLHttpRequest();
request.open('GET', 'https://jsonplaceholder.typicode.com/users', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
var data = JSON.parse(request.responseText);
console.log(data);
} else {
// error
}
};
request.send();
Заказ кривой и не доделан, Макс 30%
В ватсаппе договорились об предоплате
#container img {
vertical-align: top;
}
body {
background: #e5e9ff;
}
#container {
width: 687px;
height: 394px;
background: #f4f5fa;
font-size: 0;
}
#container img {
width: 369px;
height: 394px;
vertical-align: top;
}
#container .right {
background: #777;
width: 318px;
height: 394px;
display: inline-block;
font-size: 14px;
}
const caesar = (str, offset) => Array
.from(str, n => String.fromCharCode(n.charCodeAt(0) + offset))
.join('');
const caesarTemplate = (title, offset) => `
<div class="caesar">
<textarea class="caesar-input" data-offset="${offset}"></textarea>
<hr>
<p>${title}: <span class="caesar-output"></span></p>
</div>
`;
document.addEventListener('input', ({ target: t }) => {
if (t.matches('.caesar-input')) {
const output = t.closest('.caesar').querySelector('.caesar-output');
output.innerHTML = caesar(t.value, +t.dataset.offset);
}
});
document.body.insertAdjacentHTML('beforeend', [
[ 'Шифр', 3 ],
[ 'Расшифровка', -3 ],
].map(n => caesarTemplate(...n)).join(''));
let Caesar = {
encrypt: function(str){... return out;},
decrypt: function(str){... return out;}
}
document.getElementById('in__сaesar').oninput = function() {
document.getElementById('out__caesar').innerHTML = Caesar.encrypt(this.value);
}