2016-02-04 57 views
1
<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。jQuery獲取td內的值表

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內的所有值,但也得到未定義。任何想法爲什麼?

+0

你的小提琴是不同於你的代碼貼 – suvroc

+0

你爲什麼要下拉列表,這樣texarea值?不能使用ID或名稱? – C2486

回答

2

您得到未定義,因爲它試圖顯示選擇值和每個td的textarea值。

只顯示現有值,只是檢查是否元素在TD中存在:

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

如何讓它只顯示值,如果有一個選擇或文本區,而不是其他 – Shamik

0

查找tr而不是td所有selecttextarea像以下。

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

Demo

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


}) 
+0

哇我回答了你的問題,你改變了整個問題。爲什麼你把一個錯誤的jsfiddle演示比??? –

+0

嘿,對不起,這是一個錯誤的小提琴 – Shamik