2014-10-07 58 views
-1

我需要使用JQuery捕獲表格單元格(td標籤)中存在的值並將其傳遞給ajax請求。使用jQuery從html表中捕獲值

<div id="table"> 
    <table id="table2"> 
    <tbody> 
     <tr> 
     <td>Total Fat</td> 
     <td id="totalFat">26.3g</td> 
     <td>Carb.</td> 
     <td id="carb">8.8g</td> 
     </tr> 
     <tr> 
     <td>Sat. Fat</td> 
     <td id="satFat">1.8g</td> 
     <td>Fiber</td> 
     <td id="fiber">6.7g</td> 
     </tr> 
     <tr> 
     <td>Carter</td> 
     <td id="carter">0g</td> 
     <td>Sugar</td> 
     <td id="sugar">3.5g</td> 
     </tr> 
     <tr> 
     <td>Cholest.</td> 
     <td id="cholestral">304.5g</td> 
     <td>Protein</td> 
     <td id="protein">10.5g</td> 
     </tr> 
    </tbody> 
    </table> 
</div> 

發送請求

function foodLog() { 
    var data = { 
    carbs : $('#carb').text(), 
    totalFat : $('#totalFat').val(), 
    saturatedFat : $('#satFat').val(), 
    carter : $('#carter').val(), 
    fiber : $('#fiber').val(), 
    cholestral : $('#cholestral').val(), 
    sugar : $('#sugar').val(), 
    }; 

    $.ajax({ 
    type : "POST", 
    contentType: "application/json; charset=utf-8", 
    url : "/fitbase/foodlog/create", 
    dataType: "json", 
    data : JSON.stringify(data), 
    success : function(response) { 
     alert(response); 
    }, 
    error : function(e) { 
     alert('Error: ' + e); 
    } 
    }); 
}; 

Ajax請求的代碼,但我不能讓嵌套表格單元格內的數值。

+0

而你在哪裏卡住了? – 2014-10-07 18:06:30

+0

我想在AJAX請求,功能foodLog(){ \t VAR數據= { \t份那些值:$( '#份')VAL(), \t蛋白:$( '#蛋白')。 (), \t calories:$('#calories h4')。 ), \t saturatedFat:$('#saturatedFat')。val(), \t carter:$('#carter')。val(), \t fiber:$('#fiber')。val(), \t cholestral:$('#cholestral')。val(), \t sugar:$('#sugar')。val(), \t size:$('#size')。val(), \t}; – Karthikeyan 2014-10-07 18:13:03

+0

這似乎沒有提到你的問題。你可能想要提供一個完整的解釋,你想要什麼,你自己嘗試了什麼以及你自己的嘗試失敗了什麼(你的代碼*不*做它應該有的東西,它做了什麼*它做了它本不該做的事情?)。 – 2014-10-07 18:14:38

回答

0

只要做到:

var totalFat = $("#totalFat").text(); 
var carb = $("#carb").text(); 
0

更換.val().text()

function foodLog() { 
    var data = { 
    carbs : $('#carb').text(), 
    totalFat : $('#totalFat').text(), 
    saturatedFat : $('#satFat').text(), 
    carter : $('#carter').text(), 
    fiber : $('#fiber').text(), 
    cholestral : $('#cholestral').text(), 
    sugar : $('#sugar').text(), 
    }; 

    $.ajax({ 
    type : "POST", 
    contentType: "application/json; charset=utf-8", 
    url : "/fitbase/foodlog/create", 
    dataType: "json", 
    data : JSON.stringify(data), 
    success : function(response) { 
     alert(response); 
    }, 
    error : function(e) { 
     alert('Error: ' + e); 
    } 
    }); 
}; 
+0

我改變了然後同樣的問題隊友 – Karthikeyan 2014-10-07 18:41:38

0

由於chipChocolate.py指出以上,從.val().text()開關的工作,只包括在文件中的jQuery後。我有類似的問題。

要重現,我安裝在一個文件下面,並加載它在瀏覽器中:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<div id="table"> 
    <table id="table2"> 
    <tbody> 
     <tr> 
     <td>Total Fat</td> 
     <td id="totalFat">26.3g</td> 
     <td>Carb.</td> 
     <td id="carb">8.8g</td> 
     </tr> 
    </tbody> 
    </table> 
</div> 

不包括頂行的JavaScript上面,下面沒有工作,但包括它之後, .text().html()似乎回到什麼在TD:

proof of concept in browser