JavaScript. Как убрать введённый текст ?
- в левую колонку таблицы текст вводиться
- при нажатии на кнопку "schreibe" текст выводиться в правую колонку таблицы
- при нажатии на кнопку "entleere" текст должен стираться, в чём собственно у меня и проблема:
document.getElementById(id).innerHTML ='';
Вот так должно стираться из <td><input id="b1"></td>
document.getElementById('f0').value ='';
Вот так должно стираться из <td><div id='f2'></div></td>
Но ничего не происходит. Где ошибка ?
а где какая у вас кнопка?
откуда вы вообще стираете, просто текст в <div>, или даже лучше в <span> или value в текстовом input ?
document.getElementById(id).innerHTML ='';
Вот так должно стираться из <td><input id="b1"></td>
тогда уж наверное надо было написать document.getElementById("b1").innerHTML =''; или document.getElementById("b1").text ='';
но все равно смысла не имеет, input не имеет innenHTML
тогда уж хтмл должен выглядеть так
<td><span id="b1">удаляемый хтмл</td>
если же вы удаляете значение в инпуте, то
document.getElementById('f0').value ='';
и хтмл выглядит
<td><input id="f0" value="удаляемое значение"></td>
Фашизм будет разбит
Человека карают только те боги, в которых он верит
кстати совет начать изучение jquery остается в силе ,
это же прекрасно заменить ужас document.getElementById("b1") конструкцией $('#b1')
Фашизм будет разбит
Человека карают только те боги, в которых он верит
я бы хтмл изменил так
<html lang="de">
<head><title>Eingabe / Ausgabe</title></head>
<body>
<link rel="stylesheet" type="text/css" href="aufgaben.css">
<button onclick="leereFenster()">entleere Fenster</button>
<br>
<table border="1">
<tr>
<td>Eingabe</td>
<td>Ausgabe</td>
</tr>
<tr>
<td><input id="b0"></td>
<td><div class='output' id='f0'></div></td>
</tr>
<tr>
<td><input id="b1"></td>
<td><div class='output' id='f1'></div></td>
</tr>
<tr>
<td><input id="b2"></td>
<td><div class='output' id='f2'></div></td>
</tr>
</table>
<br>
<button onclick="Pruefe()">schreibe</button>
<script src="aufgaben.js"></script>
</body>
</html>
а яваскриот так
function Pruefe(){
a=document.getElementById('b0').value;
b=document.getElementById('b1').value;
c=document.getElementById('b2').value;
document.getElementById('f0').innerHTML =a;
document.getElementById('f1').innerHTML =b;
document.getElementById('f2').innerHTML =c;
}
function leereFenster(){
var outputs = document.getElementsByClassName("output");
for (var i = 0; i < outputs.length; i++) {
outputs.item(i).innerHTML = '';
}
}
Фашизм будет разбит
Человека карают только те боги, в которых он верит
а теперь маленькое изменение,
и сравните яваскрипт
function Pruefe(){
$('#f0').text($('#b0').val());
$('#f1').text($('#b1').val());
$('#f2').text($('#b2').val());
}
function leereFenster(){
$('.output').text('');
}
Фашизм будет разбит
Человека карают только те боги, в которых он верит
ну вообще то ещё красивее было бы все id вообще поудалять, дать класс input ам и перенести все значения в цикле а не поштучно
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Но для изучения iQuery нужно знать JS,
не нужно, наоборот мешать будет.
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Текст стираеться только во второй колонке.
где текст выводится после нажатия кнопки:
<td><div class='output' id='f0' value=''></div></td>
В окне ввода ничего не меняеться:
<td><input class='output' id='b0' value=''></td>
ну вообще то ещё красивее было бы все id вообще поудалять, дать класс input ам и перенести все значения в цикле а не поштучно
id нужны будут, их нельзя удалять
В окне ввода ничего не меняеться:
Хотите там тоже удалить?
Пишите value='' вместо innenHTML применительно к этим полям
id нужны будут, их нельзя удалять
Зачем? В данном задании они не нужны. Итерации лучше по классу делать
Фашизм будет разбит
Человека карают только те боги, в которых он верит
document.getElementById('b0').value='';
точно....
Спасибо !
Зачем? В данном задании....
это ещё не всё задание.
Пришлось такой цикл сделать:
function leereFenster()
{ let idb, idf;
for (let i = 0; i < 3; i++)
{
idb='b'+i;
idf='f'+i;
console.log(+idb,+idf);
document.getElementById(idb).value='';
document.getElementById(idf).innerHTML=''; }}
Почему не классами? Использование id не очень хорошая идея, классов может быть много, а ид повторяться не может
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Почему не классами ?
В каждой строке будет отдельное задание и проверять его нужно будет отдельно, поэтому id
почему не индексом массива элементов класса?
Фашизм будет разбит
Человека карают только те боги, в которых он верит
почему не индексом массива элементов класса?
Вот такое ?
let myArray = {
0: "345",
1: "ещё",
2: "irgendwas"};
Например такое. Очень удобно для масштабирования. А если у вас не три строчки а 100,чтобы для каждой ид не сочинять
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Где ошибка ?
-----
В понимании того с чем работаешь.
Либо ты удаляешь заполненный блок хтмла (и потом вставляешь новый).
Либо меняешь свойства у элемента не удаляя его.
Первый шаг - определится что будешь делать.
Второй шаг - научится находить элемент с которым надо работать.
Подсказка - у тебя есть работающий пример.
В понимании того с чем работаешь.Либо ты удаляешь заполненный блок хтмла (и потом вставляешь новый).Либо меняешь свойства у элемента не удаляя его.
Именно это и не дошло по началу, буду заново книжки читать.
Что меня ещё ввело в ступор :
3D und A5 sind doch beide keine Zahlen.
Geprüft wird dies durch
a=parseInt(document.getElementById('b').value);
Number.isInteger(a) ? machePlus(a) :
document.getElementById('f').innerHTML ='keine Zahl';
Meldungen "falsch" und "richtig" выдаются после вычисления и сравнения с правильным ответом.
читайте внимательно как работает эта функция.
https://developer.mozilla.org/de/docs/Web/JavaScript/Refer...
функция "просматривает" строку в поиске цифр, пока они не закончатся
поэтому в первой строке она прочитала 5 , во второй ничего
Фашизм будет разбит
Человека карают только те боги, в которых он верит
буду заново книжки читать
-----
Угу... до понимания вопроса с чем именно работаешь.
Потому как не понимая можно долго мыкаться со скриптом...
в ступор
-----
Не-не - это разбирать самостоятельно - Я не учу, Я только иногда, когда вижу где непонимание и попытку разобраться, подсказываю в какую сторону смотреть...
На jQuery тоже ничего не работает.
-----
https://basicweb.ru/jquery/jquery_effect_animate.php
Иногда на собеседованиях прогеров спрашивают - А достаточно ли толстая у тебя задница?
HTML :
-----
В магазине ты получила сдачу - 3 копейки.
Два вопроса:
- каким номиналом дана сдача - 3х1 копейке, 1 + 2 копейки, 3 копейки.
- какими деньгами была произведена оплата - 1 рулем, 3 рублями, 5 рублями.
Совет - тот же - разберись с чем работаешь. Ибо гадать можно до бесконечности.
https://basicweb.ru/jquery/jquery_effect_animate.php
Есть как бы официальная дока от разработчика.
это для flexbox, bei grid funktioniert nicht.
margin: auto размещает по центру block-элементы. Чтобы разместить по центру inline-элементы (в твоем случае button), нужно использовать свойство text-align: center контейнера.
- Как расположить кнопку по центру ? Вот это в CSS не работает:
justify-items:center;
=====
Есть два способа. Добавьте контейнеру с кнопкой свойство display: grid
Вот так:
#teil1 {
// тут ваши свойства
display: grid;
}
Либо вот так, с помощью флексов
#teil1 {
// тут ваши свойства
display: flex;
justify-content: center;
}
Есть на самом деле еще способы, но на флексах проще всего.
- Картинка должна передвигаться (анимация) вправо при нажатии кнопки. Пыталась сделать в CSS, не получилось, т.к. при каждом нажатии задаются новые координаты.
===
Вам нужно сохранять в переменной текущую позицию машины и при каждом клике на кнопку прибавлять к этой переменной значение желаемого шага, например 20 пикселей. Тогда машинка будет сдвигаться на 20px влево.
Вот держите песочницу с некоторыми пояснениями https://codepen.io/riedel28/pen/rNWyxPy
Можете поиграться там с кодом как хотите, попробовать что-то поменять итд.
Тут решение на обычном JS. Если надо именно на jQuery, то могу написать и на нем. Но думаю смысла в использовании jQuery особого нет, все можно сделать без использования сторонних библиотек нативными средствами.
P.S. Вижу выше уже добавили решение на jQuery :) Кстати, хорошо реализовано, чтобы машина не выезжала за границы.
aufgaben.html у тебя в кодировке UTF-16, а lang.js в UTF-8.
Браузеры могут толерировать ошибки в коде.
Es gibt auch keine Fehlermelung in der Console:
Если это консоль Firefox, то она не показывает ошибки в html-коде.
https://developer.mozilla.org/en-US/docs/Tools/Web_Console...
Проверить html-код можешь здесь или каким-нибудь плагином к тому же Firefox'у (напр. https://addons.mozilla.org/de/firefox/addon/html-validator...)
"В" это не таблица в хтмл. Таблица всегда начинается с тэга table.
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Как уже сказали дебаггер файрфокса такое не проверяет. Он смотрит только яваскрипт
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Beim klicken auf den Startbutton wird eine leere Tabelle mit Chekboxen und dazu passenden Werten aus einem Array befüllt, es werden aber nur checkboxen angezeigt. Wie setze ich value-Wert in label-Tag ein ? Mit createTextNode() und appendChild klappt es nicht, mit innerHTML auch nicht.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/...
Beim klicken auf den Startbutton wird eine leere Tabelle mit Chekboxen und dazu passenden Werten aus einem Array befüllt,
А что будет, если Startbutton нажать, скажем, 10000 раз?
А что будет, если Startbutton нажать, скажем, 10000 раз?
Спасибо,буду теперь знать, как кнопку отключить!
Вообще эта функция вызывается другой функцией, не кнопкой, сюда выставила отрывок и не проверила.
Блин, а я пыталась оба аппендицита вот так прицепить:
ch=document.createElement('input');
txt=document.createTextNode(Waren);
lab.appendChild(ch,txt)
lab.appendChild(ch,txt)
Плохо, что ты до сих пор не читаешь документацию. Твое решение было в 5 символах от правильного.
https://developer.mozilla.org/en-US/docs/Web/API/ParentNod...
Beim anklicken sollte der jeweilige Würfel einen Rahmen bekommen. Wie kriege ich ID vom angeklickten Objekt ?
Зачем он вам? Ставите евент на каждый кубик на одну и ту же функцию и в функции ставите бордюр на this
Фашизм будет разбит
Человека карают только те боги, в которых он верит
И ещё не поняла, function fullHouse():
почему это работает
if( (zS[0]==zS[1]==zS[2]) || (zS[3]==zS[4]) )
{console.log("test");}
а это нет :
if( (zS[0]==zS[1]==zS[2]) && (zS[3]==zS[4]) )
{console.log("full house");}
https://jsfiddle.net/z96qo3mh/
почему это работает
if( (zS[0]==zS[1]==zS[2]) || (zS[3]==zS[4]) )
а это нет :
if( (zS[0]==zS[1]==zS[2]) && (zS[3]==zS[4]) )
Капец. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Gu...
Я действительно не понимаю, почему вот это не работает ?
if ( zS[0]==zS[1]==zS[2]==zS[3]==zS[4] ) { txt="Alle gleich"; }
Или вот это:
if ( ((zS[0]==zS[1]==zS[2]) && (zS[3]==zS[4])) || ((zS[0]==zS[1]) && (zS[2]==zS[3]==zS[4])) ) {txt="FullHouse";}
Потому что оператор == возвращает только True или false. С ним третий параметр и сравнивается. Результат в принципе смысла не имеет, разве что все параметры bool да и тогда такое делать нельзя
Фашизм будет разбит
Человека карают только те боги, в которых он верит
В JS можно. А есть ли смысл или нет, зависит от...
Про типизацию я знаю, ошибку естественно не выдаст, смысла к этому выражению это не добавит
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Т.е.
- сначала zS[0]==zS[1] выдаёт результат True
- затем True сравнивается с zS[2] и получается false ?
Предположим, что в zS[0], zS[1] и zS[2] находится 2.
- сначала zS[0]==zS[1] выдаёт результат True
2 == 2 -> true
затем True сравнивается с zS[2] и получается false ?
true конвертируется в число -> 1, а потом сравнивается
1 == 2 -> false
var Listener7bis13=new Array(7);
Listener7bis13=['pruefePasch','pruefePasch','pruefeFullHouse','pruefeStrasseKlein','pruefeStrasseGross','pruefeKniffel','pruefeChance'];
for (let i=7;i<=13;i++){
let A=Listener7bis13[i-7];
console.log('ID '+i+ ' Listener '+A);
document.getElementById(i).addEventListener('click',A);}
Пытаюсь загрузить Listener через for-Schleife aus einem Array. Выдаётся ошибка:
Uncaught TypeError: EventTarget.addEventListener: Argument 2 is not an object.
Как присвоить значение из Array ?
Ваш массив listeners должен состоять из функций, а не строк, то есть у каждого имени функции нужно убрать кавычки. Разумеется эти функции должны быть созданы выше, чтобы на них можно было бы ссылаться как на переменные.
Вторым аргументом у метода addEventListener должна передаваться функция, а вы передаете на каждой итерации элемент вашего массива, то есть строку. Функция это тоже объект в JS, поэтому выводится такое вот сообщение об ошибке.
Тут подробнее https://developer.mozilla.org/en-US/docs/Web/API/EventTarg...
document.getElementById(i)
что должна вернуть эта функция? вы туда вообще даже не ид элемета передаёте. а непонятное число
но в принципе всё это неверно. всем квадратам нужно присвоить одинаковый класс , посадить листенер на класс и тогда ваша жуткая for шляйфа становится ненужной.
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Ваш массив listeners должен состоять из функций, а не строк, то есть у каждого имени функции нужно убрать кавычки.
Да, кавычки здесь действительно не нужны были ! Спасибо!
Функции все готовы, теперь работает.
document.getElementById(i), что должна вернуть эта функция? вы туда вообще даже не ид элемета передаёте. а непонятное число
Всё правильно передаётся, функция передаёт Id.
всем квадратам нужно присвоить одинаковый класс ...
Просто из этого отрывка не ясно что к чему, не для кубиков листенеры, они присвоены строкам.
вот тут я окончательно запутался. зачем строкам листенеры? что должно происходить при клике по строкам?
Фашизм будет разбит
Человека карают только те боги, в которых он верит
И что делает эта функция?
Почему бы строкам не дать тогда форму линка?
< a href="#" onclick="foo">TEXT<. /a>
Фашизм будет разбит
Человека карают только те боги, в которых он верит
И что делает эта функция? Почему бы строкам не дать тогда форму линка
У (почти) каждой строки своя функция. Линк не отключишь после выполнения функции, поэтому листенер.
Не понимаю, а зачем его отключать?
В функции можно сделать заглушку return false и всё
Только лучше все же сделать < td onclick="xxx" >
Думаю что убирать листенер после срабатывания не проще
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Думаю что убирать листенер после срабатывания не проще
Не так уж и сложно.
element.addEventListener("click", clickHandler, { once: true });
Не понимаю, а зачем его отключать?Чтобы после внесения результата в одну строчку не кликались другие, я их выключу. После следующего броска должны включиться ещё не кликаные, для чего и сделан Array.
Спасибо, специально не гуглила, сама себе создаю трудности придумываю задания, чтобы учить язык.
Ту же игрушку во флэше 20 лет назад за день сделала... какой дурацкий синтаксис у явыскрипт... и голова не соображает тоже.