我的控件是动态添加的。选择需要取到控件中的select的选择值。看下生成的html代码。<tr id="1">
    <td>
        <li class="wwgrp" id="wwgrp_projectName">
            <div class="wwctrl" id="wwctrl_projectName">
                <select id="projectName" name="">
                    <option value="房屋使用信息">房屋使用信息</option>
                    <option value="电费使用">电费使用</option>
                    <option value="二次维修">二次维修</option>
                    <option value="蒸汽收费">蒸汽收费</option>
                    <option value="冷气收费">冷气收费</option>
                    <option value="压缩气收费">压缩气收费</option>
                    <option value="水费使用">水费使用</option>
                </select>
            </div>
        </li>
    </td>
</tr>现在要做的就是用什么方法能取到当前select的选择值。而且还有一点要注意,这个是动态生成的。所以不只这一个。由tr的id来确定每行的不同,怎么才能取到当前行的select的值?
谢谢,精通的人士给予解答。

解决方案 »

  1.   

    用Javascript咯 他又一个属性selected value吧  具体的忘了
      

  2.   

    用 tr 的cells 集合 去取里面的元素 行不?
    select 不有ID 的嘛 怎么会不好取啊?
    没明白
      

  3.   

    只要根据有几层。通过jquery选择器很好得到、
      

  4.   

    这个我知道啊。
    document.getElementById(tr_id).cells[4].innerHTML;
    这样就可以取到这个控件了,但是他是取到的从td开始的所有标签和值。所以无法得到当前选择的值。
    问题就出在这了啊。
      

  5.   

    我已经探索jQuery很久了。还不没得到想要的结果。
    请您示意下。
    $("tr").has("td"),这样只能取到两层啊。不知道该怎么做了。
      

  6.   

    上面说了,这个是动态添加的控件,id号为“projectName”的可能有N个。所以不知道当前是选择的哪个啊。
      

  7.   


    如果你的ID都相同的话,不管是js还是jquery都难取到,他们都是根据id取值,你怎么ID都相同,那ID还有啥意义,想办法让你的ID唯一
      

  8.   

    动态生成的时候,把ID改成不同值;
    ID都相同本身就不符合规范,给后人造成不必要的麻烦
      

  9.   

    如果是这样的话,我只能从ID方面下手了。这样也好做些。或许我这个思路都是错的。大家看下我添加的时候是怎么加的。var allCount = 1;           //实际总行数;
    var curRowId = allCount;    //当前行ID 
    function addline() {
        var c1;
        var listtable=document.getElementById("userProjectList");
        allCount=listtable.rows.length;
        var newRow = listtable.insertRow(listtable.rows.length);
        newRow.ln = allCount;
        newRow.id = curRowId;    c1 = newRow.insertCell(0);
        c1.align = "CENTER";
        c1.id = "line" + allCount;
        c1.innerHTML = allCount;    c1 = newRow.insertCell(1);
        c1.innerHTML = document.getElementById("projectName").innerHTML;    c1 = newRow.insertCell(2);
        c1.innerHTML = document.getElementById("region").innerHTML;    c1 = newRow.insertCell(3);
        c1.innerHTML = document.getElementById("user_role").innerHTML;    c1 = newRow.insertCell(4);
        c1.innerHTML = document.getElementById("organization").innerHTML;
        c1.onclick = change(curRowId);    c1 = newRow.insertCell(5);
        c1.innerHTML = "<input type='button' value='-' style='width:20px;' onclick=delline(" + curRowId + ")>";
        c1.innerHTML += "<input type='button' value='+' style='width:20px;' onclick='checkValue(" + curRowId + ")'>";
        allCount++;
        curRowId++;
    }
    <div style="display: none" id="projectName">
        <s:select id="projectName" list="@com.byd.logfee.Constants@PROJECTNAME"></s:select>
    </div>
    <div style="display: none" id="region">
        <s:select id="region" list="@com.byd.logfee.Constants@REGIONLIST"></s:select>
    </div>
    <div style="display: none" id="user_role">
        <s:select id="user_role" list="@com.byd.logfee.Constants@USERROLE"></s:select>
    </div>
    <div style="display: none" id="organization">
        <s:label key="user.department" theme="simple"/>
    </div>这就是我在表格中添加控件的方式,不知道对不对。
      

  10.   

    还有,这里是jsp生成的html代码<tr id="1"><td align="CENTER" id="line1">1</td><td>
        <li class="wwgrp" id="wwgrp_projectName">
    <div class="wwctrl" id="wwctrl_projectName">
    <select id="projectName" name="">
        <option value="房屋使用信息">房屋使用信息</option>
        <option value="电费使用">电费使用</option>
        <option value="二次维修">二次维修</option>
        <option value="蒸汽收费">蒸汽收费</option>
        <option value="冷气收费">冷气收费</option>
        <option value="压缩气收费">压缩气收费</option>
        <option value="水费使用">水费使用</option>
    </select></div> </li>
    </td><td>
        <li class="wwgrp" id="wwgrp_region">
    <div class="wwctrl" id="wwctrl_region">
    <select id="region" name="">
        <option value="上海">上海</option>
        <option value="深圳坪山">深圳坪山</option>
        <option value="深圳宝龙">深圳宝龙</option>
        <option value="深圳葵涌">深圳葵涌</option>
        <option value="广东惠州">广东惠州</option>
        <option value="西安">西安</option>
    </select></div> </li>
    </td><td>
        <li class="wwgrp" id="wwgrp_user_role">
    <div class="wwctrl" id="wwctrl_user_role">
    <select id="user_role" name="">
        <option value="后勤处项目负责人">后勤处项目负责人</option>
        <option value="事业部项目核实人">事业部项目核实人</option>
        <option value="后勤处财务">后勤处财务</option>
        <option value="事业部财务">事业部财务</option>
    </select></div> </li>
    </td><td>
        <label id="saveUser_user_department">后勤处</label>
    </td><td><input type="button" onclick="delline(1)" style="width: 20px;" value="-"><input type="button" onclick="checkValue(1)" style="width: 20px;" value="+"></td></tr>
      

  11.   


    <table>
    <tr id="1">
    <td>
    <li>
    <div>
    <select>
    <option value="1">=====1=====</option>
    <option value="2">=====2=====</option>
    <option value="3">=====3=====</option>
    </select>
    </div>
    </li>
    </td>
    <td></td>
    <td></td>
    </tr>
    </table>
    <input type="button" value="点我看看" onclick="getVal();">
    function getVal(){
    var cells = document.getElementById("1").cells;
    var selection = cells[0].childNodes[0].childNodes[0].childNodes[0].value;
    alert(selection);
    }这个按钮能取到select里面的值了
    然后你有多个的话 就在childNodes[0] 上套循环
      

  12.   

    cells 取到的是 td 的集合
    cells[0].childNodes 是取第一个td里的元素集合
    cells[0].childNodes[0].childNodes 是去第一个td里的第一个元素里的元素集合。
    依次类推 肯定是取的到的 你用alert();调试看看哇~