С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
1

Где-то ошибка где не пойму

01.10.2016, 10:27. Показов 1242. Ответов 42
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!doctype html>
<html lang="ru">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
<meta charset="utf-8">
</head>
<body>
<input type="number" id="editbox1" value="0.4">
<input type="number" id="editbox2" value="0.4">
<button id="rul1" type="button" name="la" value="500" onclick="myFunc(this)"></button>
<button id="rul2" type="button" name="la" value="520" onclick="myFunc(this)"></button>
<button id="rul3" type="button" name="la" value="520" onclick="myFunc(this)"></button>
<button id="rul4" type="button" name="la" value="600" onclick="myFunc(this)"></button>
<button id="rul5" type="button" name="la" value="650" onclick="myFunc(this)"></button>
<div id="wb_result"></div>
<button id="rulon1" type="button" name="lal" value="2" onclick="myFun(this)"></button>
<button id="rulon2" type="button" name="lal" value="4" onclick="myFun(this)"></button>
<button id="rulon3" type="button" name="lal" value="6" onclick="myFun(this)"></button>
<button id="rulon4" type="button" name="lal" value="9" onclick="myFun(this)"></button>
<button id="rulon5" type="button" name="lal" value="10" onclick="myFun(this)"></button>
<script type="text/javascript">      
      var myFunc = function () {
        var editbox1 = parseFloat(document.getElementById('editbox1').value);
        var editbox2 = parseFloat(document.getElementById('editbox2').value);
        var b = parseFloat(this.value);
        var result = document.getElementById('wb_result');
        result.innerHTML = (editbox1 * editbox2 * b).toFixed(2);
      };
 
      var h = document.querySelectorAll('button[id^="rul"]');
      console.log('h');
      t = h.length;
      for(var i = 0; i < t; i++) {
        var c = h[i];
        c.innerHTML = c.value;
        c.onclick = myFunc;
      };
      
      var myFun = function () {
        var a = parseFloat(this.value);
        var result = document.getElementById('wb_result');
        result.innerHTML = (result * a).toFixed(2);
      };
      
      var d = document.querySelectorAll('button[id^="rulon"]');
      console.log('d');
      tt = d.length;
      for(var i = 0; i < tt; i++) {
        var cc = d[i];
        cc.innerHTML = cc.value;
        cc.onclick = myFun;
      }
      
</script>
</body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2016, 10:27
Ответы с готовыми решениями:

Не пойму где ошибка
Всем привет, вот решил написать простенький класс для работы с интернетом и выскакивают какие-то...

Не пойму, где ошибка
Есть проект. При окончании работы программы(запуск из среды VS Express 2008), отладчик выводит...

Не пойму где ошибка
Помогите исправить код, ошибок он не выдает, но программа почему то не работает, после вводы данных...

Не пойму где ошибка
#include &lt;iostream&gt; using namespace std; int main() { setlocale(0, &quot;&quot;); double a, b;...

42
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 11:20 2
Лучший ответ Сообщение было отмечено Дмитрий Дмитрий как решение

Решение

Селектор [id^="rul"] найдет элементы как #rul5, так и #rulon5.
[id^="rul"] ищет элементы, id которых начинается на rul.
Поэтому, если вы хотите находить элементы #rul5 и #rulon5 отдельно, тогда:
1. #rul5 обзываете #rul-5 и находите его селектором [id^="rul-"]
2. #rulon5 находите селектором [id^="rulon"]
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 11:32  [ТС] 3
Т.е. если я переименую id="rulon1" в id="ad" то код будет такой
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript"> 
var myFun = function () {
        var a = parseFloat(this.value);
        var result = document.getElementById('wb_result');
        result.innerHTML = (result * a).toFixed(2);
      };
      
      var d = document.querySelectorAll('button[id^="ad"]');
      console.log('d');
      tt = d.length;
      for(var i = 0; i < tt; i++) {
        var cc = d[i];
        cc.innerHTML = cc.value;
        cc.onclick = myFun;
      }
</script>
Всё равно не работает.
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 11:34 4
Я рассказал про работу селектора. А в коде просто уберите этот кусок
Javascript
1
2
3
4
5
6
7
8
var d = document.querySelectorAll('button[id^="rulon"]');
      console.log('d');
      tt = d.length;
      for(var i = 0; i < tt; i++) {
        var cc = d[i];
        cc.innerHTML = cc.value;
        cc.onclick = myFun;
      }
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 11:36  [ТС] 5
Убрал, не работает.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript">      
      var myFunc = function () {
        var editbox1 = parseFloat(document.getElementById('editbox1').value);
        var editbox2 = parseFloat(document.getElementById('editbox2').value);
        var b = parseFloat(this.value);
        var result = document.getElementById('wb_result');
        result.innerHTML = (editbox1 * editbox2 * b).toFixed(2);
      };
 
      var h = document.querySelectorAll('button[id^="rul"]');
      console.log('h');
      t = h.length;
      for(var i = 0; i < t; i++) {
        var c = h[i];
        c.innerHTML = c.value;
        c.onclick = myFunc;
      }
      
      var myFun = function () {
        var a = parseFloat(this.value);
        var result = document.getElementById('wb_result');
        result.innerHTML = (result * a).toFixed(2);
      }
        
</script>
как мы тогда определим значение переменной var a?
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 11:40 6
И зачем вы в самом скрипте вешаете на кнопку вызов функции по клику, если в самой кнопке уже это задано изначально?
А что именно не работает? Циферки меняются, NaN не появляется.
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 11:43  [ТС] 7
Работает только первая часть кода
var myFunc = function () {
var editbox1 = parseFloat(document.getElementById('editbox1').value);
var editbox2 = parseFloat(document.getElementById('editbox2').value);
var b = parseFloat(this.value);
var result = document.getElementById('wb_result');
result.innerHTML = (editbox1 * editbox2 * b).toFixed(2);
};

var h = document.querySelectorAll('button[id^="rul"]');
console.log('h');
t = h.length;
for(var i = 0; i < t; i++) {
var c = h[i];
c.innerHTML = c.value;
c.onclick = myFunc;
}

Вторая часть выдает NaN
var myFun = function () {
var a = parseFloat(this.value);
var result = document.getElementById('wb_result');
result.innerHTML = (result * a).toFixed(2);
}
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 12:00 8
А, у вас две разные функции myFunc и myFun. Не разглядел. Вот нельзя было назвать вторую как-то иначe.
Javascript
1
2
var myFun = function () {
        var a = parseFloat(this.value);
this в данном случае, это не кнопка.
Javascript
1
2
var myFun = function (elem) {
        var a = parseFloat(elem.value);
А вот тут elem это уже кнопка

Добавлено через 3 минуты
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
var myFun = function(elem) {
  var a = parseFloat(elem.value);
  var result = document.getElementById('wb_result');
  result.innerHTML = (result * a).toFixed(2);
};
 
var d = document.querySelectorAll('button[id^="rulon"]');
console.log('d');
tt = d.length;
for (var i = 0; i < tt; i++) {
  var cc = d[i];
  cc.innerHTML = cc.value;
}
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 12:08  [ТС] 9
В html myFun(this)тоже переиминовывать на elem.
myFun(elem)

Добавлено через 7 минут
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!doctype html>
<html lang="ru">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
<meta charset="utf-8">
</head>
<body>
<input type="number" id="editbox1" value="0.4">
<input type="number" id="editbox2" value="0.4">
<button id="rul1" type="button" name="la" value="500" onclick="myFunc(this)"></button>
<button id="rul2" type="button" name="la" value="520" onclick="myFunc(this)"></button>
<button id="rul3" type="button" name="la" value="520" onclick="myFunc(this)"></button>
<button id="rul4" type="button" name="la" value="600" onclick="myFunc(this)"></button>
<button id="rul5" type="button" name="la" value="650" onclick="myFunc(this)"></button>
<div id="wb_result"></div>
<button id="ad1" type="button" name="lal" value="2" onclick="myFun(elem)"></button>
<button id="ad2" type="button" name="lal" value="4" onclick="myFun(elem)"></button>
<button id="ad3" type="button" name="lal" value="6" onclick="myFun(elem)"></button>
<button id="ad4" type="button" name="lal" value="9" onclick="myFun(elem)"></button>
<button id="ad5" type="button" name="lal" value="10" onclick="myFun(elem)"></button>
<script type="text/javascript">      
      var myFunc = function () {
        var editbox1 = parseFloat(document.getElementById('editbox1').value);
        var editbox2 = parseFloat(document.getElementById('editbox2').value);
        var b = parseFloat(this.value);
        var result = document.getElementById('wb_result');
        result.innerHTML = (editbox1 * editbox2 * b).toFixed(2);
      };
 
      var h = document.querySelectorAll('button[id^="rul"]');
      console.log('h');
      t = h.length;
      for(var i = 0; i < t; i++) {
        var c = h[i];
        c.innerHTML = c.value;
        c.onclick = myFunc;
      }
      
      var myFun = function(elem) {
  var a = parseFloat(elem.value);
  var result = document.getElementById('wb_result');
  result.innerHTML = (result * a).toFixed(2);
};
 
var d = document.querySelectorAll('button[id^="ad"]');
console.log('d');
tt = d.length;
for (var i = 0; i < tt; i++) {
  var cc = d[i];
  cc.innerHTML = cc.value;
}
          
</script>
</body>
</html>
Переименовал второй блок кнопок на id="ad"
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 12:19 10
Лучший ответ Сообщение было отмечено Дмитрий Дмитрий как решение

Решение

Да подождите, дайте понять что вы тут наворотили. Не надо в html ничего переименовывать

Добавлено через 8 минут
Возвращайте html в исходное состояние, как в первом посте и попробуйте этот код
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var buttons = document.querySelectorAll('button[id^="rul"]');
var editbox1 = parseFloat(document.getElementById('editbox1').value);
var editbox2 = parseFloat(document.getElementById('editbox2').value);
var result = document.getElementById('wb_result');
 
[].forEach.call(buttons,function(elem){
  elem.innerHTML = elem.value;
})
 
function myFunc(elem) { 
  var b = parseFloat(elem.value);
  result.innerHTML = (editbox1 * editbox2 * b).toFixed(2);
};
 
function myFun(elem) {  
  var a = parseFloat(elem.value);    
  result.innerHTML = (a*result.innerHTML).toFixed(2);
};
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 12:24  [ТС] 11
Я даже объяснить не могу что не так
Но не работает.
В html все вернул как было.

Вставьте код, посмотрите сами, ерунда какая то
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 12:27 12
Не работает или работает, но не так? Вот, песочница, вроде все работает
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 12:34  [ТС] 13
Работает не так.
на кнопке число 500, а умножается не 500, а 80.
Второй блок кнопок где 2, 4, 6, 9, 10 умножает правильно но если нажимать например кнопку 2 постоянно то она будет умножать постоянно, а это однократное действие.
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 12:49 14
Цитата Сообщение от Дмитрий Дмитрий Посмотреть сообщение
на кнопке число 500, а умножается не 500, а 80.
0,4*0,4*500 = 80
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 12:51  [ТС] 15
1*1*500=80
2*2*500=80
Любое число *500=80
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 13:07 16
Лучший ответ Сообщение было отмечено Дмитрий Дмитрий как решение

Решение

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<input type="number" id="editbox1" value="0.4">
<input type="number" id="editbox2" value="0.4">
<button id="rul1" type="button" name="la" value="500"></button>
<button id="rul2" type="button" name="la" value="520"></button>
<button id="rul3" type="button" name="la" value="520"></button>
<button id="rul4" type="button" name="la" value="600"></button>
<button id="rul5" type="button" name="la" value="650"></button>
<div id="wb_result"></div>
<button id="rulon1" type="button" name="lal" value="2"></button>
<button id="rulon2" type="button" name="lal" value="4"></button>
<button id="rulon3" type="button" name="lal" value="6"></button>
<button id="rulon4" type="button" name="lal" value="9"></button>
<button id="rulon5" type="button" name="lal" value="10"></button>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var buttons = document.querySelectorAll('button[id^="rul"]');
var resultDiv = document.getElementById('wb_result');
var result = 0;
 
[].forEach.call(buttons, function(elem) {
  elem.innerHTML = elem.value;
  if (elem.name == 'la') { elem.onclick = firstCalc; } 
     else if (elem.name == 'lal') { elem.onclick = secondCalc; }
})
 
function firstCalc() {
  var editbox1 = parseFloat(document.getElementById('editbox1').value);
  var editbox2 = parseFloat(document.getElementById('editbox2').value);
  var btnValue = parseFloat(this.value);  
  result = (editbox1 * editbox2 * btnValue).toFixed(2);
  resultDiv.innerHTML = result;
}
 
function secondCalc() {
resultDiv.innerHTML = (this.value*result).toFixed(2);
}
Результат
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 13:09  [ТС] 17
Спасибо!!!!
Можно разжевать для особо одаренных.
Ещё вопрос, почему js код работает только в теге </body>, вроде как должен в теге <head>?
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 13:23 18
Перед закрывающим </body> ему самое место.
А по коду. Если нажата кнопка с именем la, вызывается одна функция, если с именем lal - другая
Функция firstCalc меняет значение глобальной переменной result, а функция secondCalc просто выводит результат умножения result и значения нажатой кнопки.
1
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
01.10.2016, 13:27  [ТС] 19
onclick="myFun(this) в html не нужен?
0
Эксперт JSЭксперт HTML/CSS
3826 / 2676 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
01.10.2016, 13:29 20
Для конкретно этого кода - нет
1
01.10.2016, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2016, 13:29
Помогаю со студенческими работами здесь

Не пойму, где ошибка
Всем добрый день. Недавно начал изучать С++ вот столкнулся с проблемой в одной из задач: Из...

не пойму где ошибка
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

не пойму где ошибка
program laba4; var A:array of integer; i,j,m,n,k,p,max:integer; Begin write('число...

не пойму где ошибка
У меня в архиве программа. Я не пойму почему маткад жалуется на переменную омега. Помогите плиз

Не пойму где ошибка
string arr = new string; comboBox1.Items.CopyTo(arr, 0); ...

Не пойму, где ошибка
Здравствуйте, что-то никак не разберусь в этом куске кода, и почему компилятор нашел там narrowing...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru