2012-06-26 74 views
7

嗨,大家好我有一個簡單的問題,即時通訊嘗試從html表格行中獲取值。兒子當我點擊表格行刪除按鈕我想把這些值的變量發送到服務器。我從這裏找到了http://jsbin.com/ihaqe6的東西,看起來像我需要的東西,但當我把它放在一起爲我的方案,它不起作用。獲取jQuery的錶行值

這裏是表html。

<table id='thisTable' class='disptable' style='margin-left:auto;margin-right:auto;' > 
    <tr> 

    <th>Fund</th> 
    <th>Organization</th> 
    <th>Access</th> 
    <th>Delete</th> 
    </tr> 
    <tr> 
    <td class='fund'>100000</td><td class='org'>10110</td><td>OWNED</td><td><a class='delbtn'ref='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67130</td><td>OWNED</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>170252</td><td class='org'>67130</td><td>OWNED</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67150</td><td>PENDING ACCESS</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67120</td><td>PENDING ACCESS</td><td><a class='delbtn' href='#'>X</a> 
    </td> 
    </tr> 

這裏是jquery。

var tr = $('#thisTable').find('tr'); 
     tr.bind('click', function(event) { 
      //var values = ''; 
      // tr.removeClass('row-highlight'); 
      var tds = $(this).addClass('row-highlight').find('td'); 

      $.each(tds, function(index, item) { 
       values = values + 'td' + (index + 1) + ':' + item.innerHTML + '<br/>'; 
       alert(values); 
      }); 
      alert(values); 

     }); 

我做錯了什麼?我一直在看例子,但我似乎無法做到這一點。

米格爾

+0

什麼你期望的輸出是,從HTML樣本? –

+0

警報顯示什麼? –

+0

我預計從點擊的行中得到的值將被提醒。至少開始。 – Miguel

回答

12

試試這個:

jQuery('.delbtn').on('click', function() { 
    var $row = jQuery(this).closest('tr'); 
    var $columns = $row.find('td'); 

    $columns.addClass('row-highlight'); 
    var values = ""; 

    jQuery.each($columns, function(i, item) { 
     values = values + 'td' + (i + 1) + ':' + item.innerHTML + '<br/>'; 
     alert(values); 
    }); 
    console.log(values); 
}); 

DEMO

+0

謝謝里卡多。我必須爲這個答案而感激。我花了好幾個小時的腦筋。 – Miguel

+0

@Miguel不客氣。 :) –

+0

必須人們使用$而不是jQuery – tibi

5

給這樣的一個嘗試:

$(document).ready(function(){ 
    $("#thisTable tr").click(function(){ 
     $(this).find("td").each(function(){ 
      alert($(this).html()); 
     }); 
    }); 
});​ 

下面是代碼的行動小提琴:http://jsfiddle.net/YhZsW/

+0

我只想讓函數給我點擊行的價值,而不是整個表。這是我陷入困境的地方。 – Miguel

+0

嗨,小提琴和代碼已經更新:)我只是改變了「每個」到「點擊」 –

0

Here is a working example。我改變了代碼輸出到一個div而不是一個警告框。我相信你的問題是item.innerHTML。我使用jQuery html函數,而這似乎解決了這個問題。

<table id='thisTable' class='disptable' style='margin-left:auto;margin-right:auto;' > 
    <tr> 

    <th>Fund</th> 
    <th>Organization</th> 
    <th>Access</th> 
    <th>Delete</th> 
    </tr> 
    <tr> 
    <td class='fund'>100000</td><td class='org'>10110</td><td>OWNED</td><td><a class='delbtn'ref='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67130</td><td>OWNED</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>170252</td><td class='org'>67130</td><td>OWNED</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67150</td><td>PENDING ACCESS</td><td><a class='delbtn' href='#'>X</a></td></tr> 
    <tr><td class='fund'>100000</td><td class='org'>67120</td><td>PENDING ACCESS</td><td><a class='delbtn' href='#'>X</a> 
    </td> 
    </tr> 
</table> 
<div id="output"></div>​ 

的JavaScript:

$('#thisTable tr').on('click', function(event) {  
    var tds = $(this).addClass('row-highlight').find('td'); 
    var values = ''; 
    tds.each(function(index, item) {   
     values = values + 'td' + (index + 1) + ':' + $(item).html() + '<br/>'; 
    }); 
    $("#output").html(values); 
}); 
+0

抱歉Jhon您的解決方案對我無效?我不知道爲什麼。我改變了$(「#output」)。html(values);提醒(價值),它不會做任何事情。裏卡多解決方案似乎是這樣想的。 – Miguel

0

所有元素

$('#tabla > tbody > tr').each(function() { 
    $(this).find("td:gt(0)").each(function(){ 
     alert($(this).html()); 
     }); 
}); 
-1
$(document).ready(function() { 
     $("#tbl_Customer tbody tr .companyname").click(function() { 

      var comapnyname = $(this).closest(".trclass").find(".companyname").text(); 
      var CompanyAddress = $(this).closest(".trclass").find(".CompanyAddress").text(); 
      var CompanyEmail = $(this).closest(".trclass").find(".CompanyEmail").text(); 
      var CompanyContactNumber = $(this).closest(".trclass").find(".CompanyContactNumber").text(); 
      var CompanyContactPerson = $(this).closest(".trclass").find(".CompanyContactPerson").text(); 
      // var clickedCell = $(this); 
      alert(comapnyname); 
      alert(CompanyAddress); 
      alert(CompanyEmail); 
      alert(CompanyContactNumber); 
      alert(CompanyContactPerson); 

      //alert(clickedCell.text()); 
     }); 
    }); 
+0

.companyname單元格單擊部分。 .trclass表示tr類名。在查找雙引號是每個td類名...它工作正常 –