<table width="200" border="1">
  <tr>
    <td>序号</td>
    <td>判断</td>
  </tr>
  <tr>
    <td><label>
      <input name="textfield" type="text" value="1">
    </label></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><input name="textfield2" type="text" value="1"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><input name="textfield3" type="text" value="2"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><input name="textfield4" type="text" value="1"></td>
    <td>&nbsp;</td>
  </tr>
</table>请教如何实现如下的效果:
通过JS逐行对表格的文本框进行比较,当文本框的值为1时,“判断”一列的值显示为“yes“
反之,则显示为"no"

解决方案 »

  1.   

    var txtList = document.getElementById("tableID").getElementsByTagName("input");
    for(var i=0;i<txtList.length;i++){
    if(txtList[i].tagName=="INPUT"){
    txtList[i].value = txtList[i].value=="1"?"yes":"no";
    }
    }
      

  2.   

    var txtList = document.getElementById("tableID").getElementsByTagName("input");
    for(var i=0;i<txtList.length;i++){
    if(txtList[i].tagName=="INPUT"){
    txtList[i].value = txtList[i].value=="1"?"yes":"no";
    }
    }上面的答案应该可以满足你的要求了啊!
      

  3.   

    非常感激“老胡”的帮助,有点小问题:
    我是希望“yes”和“No”出现在判断那一列上(也就是在文本框的后面一列)
    您的代码是将“yes”和“No”直接显示在文本框了
    麻烦再帮忙看一下
      

  4.   

    能jQuery就好了:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    $(function(){
    var $trs = $('#tableId tr');
    $trs.each(function(){
    var $tds = $(this).find('td');
    if($tds.eq(0).find('input').val() == 1){
    $tds.eq(1).html('yes');
    }
    if($tds.eq(0).find('input').val() == 2){
    $tds.eq(1).html('no');
    }
    })

    })
    //-->
    </SCRIPT>
     </HEAD> <BODY>
      <table id="tableId" width="200" border="1">
      <tr>
        <td>序号</td>
        <td>判断</td>
      </tr>
      <tr>
        <td><label>
          <input name="textfield" type="text" value="1">
        </label></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield2" type="text" value="1"></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield3" type="text" value="2"></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield4" type="text" value="1"></td>
        <td>&nbsp;</td>
      </tr>
    </table> </BODY>
    </HTML>
      

  5.   

    我的博客中有一篇文章专门讲的就是js中字符,时间,数字的比较排序你可以去看下http://blog.csdn.net/nlx0201/archive/2010/10/22/5959023.aspx
      

  6.   

      <table id="tab" width="200" border="1">
      <tr>
        <td>序号</td>
        <td>判断</td>
      </tr>
      <tr>
        <td><label>
          <input name="textfield" type="text" value="1">
        </label></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield2" type="text" value="1"></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield3" type="text" value="2"></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield4" type="text" value="1"></td>
        <td>&nbsp;</td>
      </tr>
    </table><SCRIPT LANGUAGE="JavaScript">
    var inps = document.getElementById("tab").getElementsByTagName("input"); //取tab中所有的input
    for (var i=0; i<inps.length; i++) //遍历取到的input
    {
    var TDobj = inps[i].parentElement; //取input的父元素
    if(TDobj.tagName.toLowerCase()!='td') TDobj = TDobj.parentElement; //若父元素不是td就再向上一层(第一行的input嵌套在label标签内)
    if (inps[i].value == 1) TDobj.nextSibling.innerHTML = "yes"; //input为1,给隔壁的td写入内容yes
    else TDobj.nextSibling.innerHTML = "no"; //input不为1,给隔壁的td写入内容no
    }
    </SCRIPT>
      

  7.   

    太难看了……再来一次  <table id="tab" width="200" border="1">
      <tr>
        <td>序号</td>
        <td>判断</td>
      </tr>
      <tr>
        <td><label>
          <input name="textfield" type="text" value="1">
        </label></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield2" type="text" value="1"></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield3" type="text" value="2"></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="textfield4" type="text" value="1"></td>
        <td>&nbsp;</td>
      </tr>
    </table><SCRIPT LANGUAGE="JavaScript">
    var inps = document.getElementById("tab").getElementsByTagName("input"); //取tab中所有的input
    for (var i=0; i<inps.length; i++) //遍历取到的input
    {
    var TDobj = inps[i].parentElement; //取input的父元素
    if(TDobj.tagName.toLowerCase()!='td') TDobj = TDobj.parentElement; //若父元素不是td就再向上一层(第一行的input嵌套在label标签内)
    if (inps[i].value == 1) TDobj.nextSibling.innerHTML = "yes"; //input为1,给隔壁的td写入内容yes
    else TDobj.nextSibling.innerHTML = "no"; //input不为1,给隔壁的td写入内容no
    }
    </SCRIPT>
      

  8.   

    先将input数组,再逐一比较,关键语句:if (input[i].value=="1") 表格ID.innerText="yes" else 表格ID.innerText="no" 
      

  9.   

    parentElement只能用于IE
    最好用parentNode
      

  10.   

    感谢楼上提醒,应该养成好习惯哈,呵呵 ^_^
    顺便问下,nextSibling是通用的不?to LZ:if (inps[i].value == a) TDobj.nextSibling.innerHTML = "yes";  
    //变量就是这样了,不过别忘了给变量赋值