Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > скажите как сюда добавить этот счетчик?


Автор: stan90 14.1.2010, 16:03
скажите как вот сюда 
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
<script language="LiveScript">
<!--
var cnt=0;

function add(str)
{ document.myForm.view.value += str} 

   var operators = [
        {displ:"<=>", means:"=="}, 
        {displ:"xor", means:"^"}, 
        {displ:"~", means:"!"},
        {displ:"=>", means:">"},
    ];
    function compute(form) {
        var evalStr = document.getElementById('view').value;
        var evalStr1 = document.getElementById('view2').value;
        for (var i = 0; i < operators.length; i++) {
            re = new RegExp(operators[i].displ, "g");
            evalStr = evalStr.replace(re, operators[i].means);
            evalStr1 = evalStr1.replace(re, operators[i].means);
            delete re;
        }
        document.getElementById('view').value = eval(evalStr);
        document.getElementById('view2').value = eval(evalStr1);
        if((document.getElementById('view').value) == (document.getElementById('view2').value))
        {document.getElementById('view1').value='true'; }
        else {document.getElementById('view1').value='false';}
    }
    
    function setXValue(value) {
        X = value;
        }
//-->
</script>
<body>
<form name="myForm" >

<font color="#666666" face="verdana, arial, helvetica, ms sans serif" size="3">Счёт:</font><table width="6%" height="43" border="1" bordercolor="#666666">
<tr>
            <td height="20" ><font color="#666666" face="verdana, arial, helvetica, ms sans serif" size="3"> <div id="cnt" align="center">0</div></font></td>
          </tr>
        </table>
<input type=text id="view" name="view" size=30 />
  <input type="text" name="view2" id="view2" size="30" />
</p>
<p>&nbsp;</p>
<p>X  

  :
  <input type="radio" value="1" name="radio1" id="radio1" onclick="setXValue(this.value);" />
  <label for="radio1">1</label>
  <input type="radio" value="0" name="radio1" id="radio2" onclick="setXValue(this.value);" />
  <label for="radio2">0</label>
<br />
  <br />
  <br />
  <input type="button" value=" 1  "
  onClick="add('1')">
  <input type="button" value=" 0 "
  onClick="add('0')">
   <input type="button" value="&"
  onClick="add('&')">
   <input type="button" value="Back Space"
  onclick="deleteChar(this.form.view)" />
   <br />
   <input type=button value=" X " onclick="add('X')" />
  
   <input type=button value=" Y " onclick="add('Y')" />
    <input type=button value="=>" onclick="add('=>')" />
    <input type="button" value="  ~ " onClick="add('~')">
    <input type="button" value="  xor " onclick="add('xor')" />
    <input type="button" value="  | " onclick="add('|')" />
    <input type=reset value=" clear " />
    <br />
    <input type="button" value="  ( " onclick="add('(')" />
    <input type="button" value="  ) " onClick="add(')')">
    <input type="button" value="  <=> " onclick="add('<=>')" />
    <br />
  <input type=button value="Вычислить" name="enter" onClick="compute(this.form)">
  <input type=reset value=" clear " />
  <strong><em>Значение:</em></strong>
  <input name="view1" type="text"  size="10" id="view1"  onfocus="this.blur()"/>
</p>
</form>
</body>
</html>



вставить вот этот счетчик(он должен при равенстве значений полей увеличивать счет на 1,а наоборот уменьшать)
Код

 var _cnt = document.getElementById("cnt").firstChild;
   var re = /\d+/;
     cnt= _cnt.nodeValue;
   if (re.test(_cnt.nodeValue)) {
     if((document.getElementById('view').value) == (document.getElementById('view2').value))
{_cnt.nodeValue = (parseInt(_cnt.nodeValue) + 1).toString();}
      else { _cnt.nodeValue = (parseInt(_cnt.nodeValue) - 1).toString();}
    
   } else {_cnt.nodeValue = "0";}
   cnt++;


а то я добавляю его туда но он почему то не хочет работать((

Автор: bars80080 14.1.2010, 16:14
код не совсем соотносится с вашей разметкой.

var _cnt = document.getElementById("cnt").firstChild;
подразумевает наличие вложенных элементов в блоке, а их там нет
<div id="cnt" align="center">0</div>


когда отладите, то попробуйте добавить его перед закрывающей скобкой функции compute (между 32-33 строками)

если код счётчика будет рабочий, то должно заработать

Автор: stan90 14.1.2010, 16:24
заработало)спасибо

Автор: Amphiluke 14.1.2010, 17:30
Цитата(bars80080 @  14.1.2010,  19:14 Найти цитируемый пост)
var _cnt = document.getElementById("cnt").firstChild;
подразумевает наличие вложенных элементов в блоке, а их там нет
<div id="cnt" align="center">0</div>

А что, текст «0» не является дочерним объектом? smile 

Я так — между прочим… Поскольку кое-где узнаю свой собственный код.

Автор: bars80080 14.1.2010, 18:05
хм, бывает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)