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>
Фашизм будет разбит
Человека карают только те боги, в которых он верит
я бы хтмл изменил так
<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('');
}
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Текст стираеться только во второй колонке.
где текст выводится после нажатия кнопки:
<td><div class='output' id='f0' value=''></div></td>
В окне ввода ничего не меняеться:
<td><input class='output' id='b0' value=''></td>
ну вообще то ещё красивее было бы все id вообще поудалять, дать класс input ам и перенести все значения в цикле а не поштучно
id нужны будут, их нельзя удалять
В окне ввода ничего не меняеться:
Хотите там тоже удалить?
Пишите value='' вместо innenHTML применительно к этим полям
id нужны будут, их нельзя удалять
Зачем? В данном задании они не нужны. Итерации лучше по классу делать
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Пришлось такой цикл сделать:
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=''; }}
Где ошибка ?
-----
В понимании того с чем работаешь.
Либо ты удаляешь заполненный блок хтмла (и потом вставляешь новый).
Либо меняешь свойства у элемента не удаляя его.
Первый шаг - определится что будешь делать.
Второй шаг - научится находить элемент с которым надо работать.
Подсказка - у тебя есть работающий пример.
В понимании того с чем работаешь.Либо ты удаляешь заполненный блок хтмла (и потом вставляешь новый).Либо меняешь свойства у элемента не удаляя его.
Именно это и не дошло по началу, буду заново книжки читать.
Что меня ещё ввело в ступор :
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 :) Кстати, хорошо реализовано, чтобы машина не выезжала за границы.
Браузеры могут толерировать ошибки в коде.
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...)
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 ?
И ещё не поняла, 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] и 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 шляйфа становится ненужной.
Фашизм будет разбит
Человека карают только те боги, в которых он верит
document.getElementById(i), что должна вернуть эта функция? вы туда вообще даже не ид элемета передаёте. а непонятное число
Всё правильно передаётся, функция передаёт Id.
всем квадратам нужно присвоить одинаковый класс ...
Просто из этого отрывка не ясно что к чему, не для кубиков листенеры, они присвоены строкам.
Не понимаю, а зачем его отключать?
В функции можно сделать заглушку return false и всё
Только лучше все же сделать < td onclick="xxx" >
Думаю что убирать листенер после срабатывания не проще
Фашизм будет разбит
Человека карают только те боги, в которых он верит
Не понимаю, а зачем его отключать?Чтобы после внесения результата в одну строчку не кликались другие, я их выключу. После следующего броска должны включиться ещё не кликаные, для чего и сделан Array.