jQuery在表中获取td的值

时间:2016-02-04 13:14:02

标签: javascript jquery

<table id="GridView1">
 <tr>
    <th>KeyWord</th>
    <th>Identifiers</th>
    <th>Values</th>
 </tr>
 <tr>
    <td>
        <select >
           <option selected="selected" value="Action A">Action A</option>
           <option  value="Action b">Action b</option>
           <option value="Action C">Action C</option>
        </select>
    </td>
    <td>
        <textarea >adsasd</textarea>
    </td>
        <td>
        <textarea >dsad</textarea>
    </td>
 </tr>
  <tr>
    <td>
        <select >
           <option value="Action A">Action A</option>
           <option selected="selected" value="Action b">Action b</option>
           <option value="Action C">Action C</option>
        </select>
    </td>
    <td>
        <textarea >asdasd</textarea>
    </td>
        <td>
        <textarea >sdsad</textarea>
    </td>
 </tr>
 </table>

这是js。

var xml = '<?xml version="1.0" encoding="utf-8"?>';
xml = xml + '<Root>';
i=0;
$("#GridView1 tr").each(function () {

 $(this).find('td').each (function() {
    alert($(this).find('select').val())

  alert($(this).find('textarea').val())


});

});

xml = xml + '</Root>'
alert(xml)

我获取了td中的所有值,但也未定义。知道为什么吗?

3 个答案:

答案 0 :(得分:2)

您未定义,因为它尝试显示每个td的选择值和textarea值。

要仅显示现有值,只需检查元素是否存在于td:

if($(this).find('textarea').length > 0) {
  alert($(this).find('textarea').val());
}

答案 1 :(得分:1)

Demo

$("table").find("td").each(function(){
alert($(this).html());


})

答案 2 :(得分:0)

查找select中的所有textareatr,而不是td,如下所示。

$("#GridView1 tr").find('select, textarea').each(function () {
    alert(this.value);
});