<div   id="template"> 
                    <input   type="text"   value="$Bind('userName')"> 
    <select   class="select"> 
<option   value="1"> a </option> 
<option   value="2"> b </option> 
<option   value="3"> c </option> 
<option   value="4"> d </option> 
<option   value="5"> e </option> 
    </select>
<span id="无间道"></span>
</div>
<script>
var list=document.getElementById("无间道").parentNode.getElementsByTagName("select")[0];
list.selectedIndex=3;//这里指定
</script>

解决方案 »

  1.   

    呵呵,发现有点多余~~<div   id="template"> 
    <input   type="text"   value="$Bind('userName')"> 
    <select   class="select"> 
    <option   value="1"> a </option> 
    <option   value="2"> b </option> 
    <option   value="3"> c </option> 
    <option   value="4"> d </option> 
    <option   value="5"> e </option> 
    </select>
    </div>
    <script>
    var list=document.getElementById("template").getElementsByTagName("select")[0];
    list.selectedIndex=3;//这里指定
    </script>
      

  2.   

    谢谢,不过还是没能解决。
    <div   id="template"> 
    </div>
    里面不能再出现用id指定的元素了,因为这个里面的东西除了$Bind('userName')这种方式指定的值会被数据取代,其他的都是在每一个td中完全重复,有一条数据就重复一次,那样就会出现好多id相同的元素,没法定位是哪一个了。
      

  3.   

    <div       id="template">   
    </div> 
    只是一个容器用来编辑模版,在生成table后里面的内容就复制到相应的单元格里面了,template就被隐藏或者remove了。
      

  4.   

    比如说我的数据是这样:
    <?xml version="1.0" encoding="UTF-8"?>
    <xml>
    <person>
    <userName>a</userName>
    <userType>2</userType>
    <id>43</id>
    </person>
    <person>
    <userName>b</userName>
    <userType>3</userType>
    <id>44</id>
    </person> </xml>
    在生成的时候指定第2列为模版列其余为默认。
    那么生成的表格就是
    <table>
    <thead></thead>
    <tbody>
      <tr>
        <td>a</td>
        <td>
        <input   type="text"   value="$Bind('userName')"> 
           <select   class="select"> 
             <option   value="1"> a </option> 
             <option   value="2"> b </option> 
             <option   value="3"> c </option> 
             <option   value="4"> d </option> 
             <option   value="5"> e </option> 
           </select>
        </td>
        <td>43</td>
      </tr>
       <tr>
        <td>b</td>
        <td><select   class="select"> 
             <option   value="1"> a </option> 
             <option   value="2"> b </option> 
             <option   value="3"> c </option> 
             <option   value="4"> d </option> 
             <option   value="5"> e </option> 
           </select></td>
        <td>44</td>
      </tr>
    </tbody>  
    </table>
    如果用‘无间道’的方式的话就是这样:
    <table>
    <thead></thead>
    <tbody>
      <tr>
        <td>a</td>
        <td>
        <input   type="text"   value="a"> 
           <select   class="select"> 
             <option   value="1"> a </option> 
             <option   value="2"> b </option> 
             <option   value="3"> c </option> 
             <option   value="4"> d </option> 
             <option   value="5"> e </option> 
           </select>
           <span id="无间道"></span>
        </td>
        <td>43</td>
      </tr>
       <tr>
        <td>b</td>
        <td> <input   type="text"   value="b">
            <select   class="select"> 
             <option   value="1"> a </option> 
             <option   value="2"> b </option> 
             <option   value="3"> c </option> 
             <option   value="4"> d </option> 
             <option   value="5"> e </option> 
           </select><span id="无间道"></span>
    </td>
        <td>44</td>
      </tr>
    </tbody>  
    </table>
    如果把template也放进去的话就是
    <table>
    <thead></thead>
    <tbody>
      <tr>
        <td>a</td>
        <td><div   id="template">
        <input   type="text"   value="a">
           <select   class="select"> 
             <option   value="1"> a </option> 
             <option   value="2"> b </option> 
             <option   value="3"> c </option> 
             <option   value="4"> d </option> 
             <option   value="5"> e </option> 
           </select>
           <span id="无间道"></span></div>
        </td>
        <td>43</td>
      </tr>
       <tr>
        <td>b</td>
        <td><div   id="template">
        <input   type="text"   value="b">
           <select   class="select"> 
             <option   value="1"> a </option> 
             <option   value="2"> b </option> 
             <option   value="3"> c </option> 
             <option   value="4"> d </option> 
             <option   value="5"> e </option> 
           </select>
           <span id="无间道"></span></div></td>
        <td>44</td>
      </tr>
    </tbody>  
    </table>
    这样子就没法同过id来取得对象了,
      

  5.   

    肯定有什么可以和其他select区别,就用那个找select对象,然后用.selectedIndex=?确定
    function getMySelect(){
    var s=document.getElementsByTagName("select");
    for(var key in s)
    {
       if(s[key].options.length>0 && s[key].options[0].text=="???")
            return s[key];
    }
    }
      

  6.   

    id改为namedocument.getElementsByTagName("template")[0].getElementsByTagName("select")[0];
      

  7.   

    问题是你转化后那个userType变成什么数据了~以上都有没看到有~
    如果这一点无从知道的话~js怎么做到选中那个项?
      

  8.   

    $Bind('userType')变成了xml中对应的userType也就是2、3(两条person记录)
      

  9.   


    <input   type="text"   value="$Bind('userName')"> 
    <select   class="select" id="$Bind('userType')">
    <option   value="1"> a </option> 
    <option   value="2"> b </option> 
    <option   value="3"> c </option> 
    <option   value="4"> d </option> 
    <option   value="5"> e </option> 
    </select>
    <script>
    var lists=document.getElementsByTagName("select");
    for(var i=0;i<lists.length;i++){
        if(lists[i].className=="select")lists[i].selectedIndex=parseInt(lists[i].id)-1;
    }
    </script>
      

  10.   

    谢谢~,看来只能通过js来控制了,我借鉴你的方法扩展了一下:function compareSelectValue(obj){
    var selects=$A(obj.getElementsByTagName("select"));
    selects.each(function (value,index){
        if(value.compare){
    var selected=0;
    for(var i=0;i<value.options.length;i++){
    if(value.options[i].value==value.compare){
    selected=i;
    break;
    }
    }
    value.selectedIndex=selected;
    }
       });
    }
    function compareCheckBoxValue(obj){
    var inputs=$A(obj.getElementsByTagName("input"));
    var checkboxs=inputs;
    inputs.each(function (value,index){
    if(value.type!="checkbox"){
      checkboxs=inputs.without(value);
     }
    });

    checkboxs.each(function (value,index){
        if(value.compare){
    if(value.compare==value.value){
    value.checked=true;
    }
    }
       });
    }在生成表格后调用这两个方法,就行了,谢了~