2010-08-24 83 views
2

只需要尋找最佳實踐方法即可。 我有一個表格列表信息,最後一列是一個帶有「編輯/查看」的按鈕。當用戶點擊按鈕上顯示一個div面積可與JSTL將var傳遞給jquery的function()js

<script type="text/javascript"> 
//Click on Edit/View on table 
$('.viewCustomer').click(function() 
{ 
    ....... 
}); 

</script> 

<tr class="odd"> 
    <td>${customerBean.comName}</td> 
    <td>${customerBean.comCode}</td> 
    <td class="noRightPad"> <input type="submit" name="createBut" value="View/Edit" class="viewCustomer" /> </td> 
</tr> 

的一些片斷進行編輯下面

代碼的詳細信息所以我的問題是:

(1)如何(函數()

(2)這是要做到這一點的最好方法嗎?是否有更高效/安全/更清潔的做法這個?

乾杯 Alexis

回答

2

點擊功能不會被您調用。單擊該按鈕時,這就是所謂的,因此已經將事件對象傳遞給它:

$('.viewCustomer').click(function(evt){ 
    ....... 
}); 

究竟是什麼你想傳遞什麼?你可以使用this$(this)來訪問你點擊的DOM元素,所以也許可以從這裏引用你想要的。

編輯發表評論

如果用戶在按鈕 是表第四行和 該行的另一科拉姆有 客戶ID 1234點擊我想通過 可變1234

注:的下面都沒有被測試,但應該足夠

我們假設你的'客戶ID'欄有一個'customerid'的類名。所以你的HTML可能是:

<tr class="odd"> 
    <td>${customerBean.comName}</td> 
    <td class="customerid">${customerBean.comCode}</td> 
    <td class="noRightPad"> <input type="submit" name="createBut" value="View/Edit" class="viewCustomer" /> </td> 
</tr> 

jQuery的可能看起來像:

$('.viewCustomer').click(function(){ 
    var $buttonCell = $(this).parent(); //the <td> containing the button 
    var $buttonRow = $buttonCell.parent(); //the <tr> containing the button and your customer id 
    var $customerIdCell = $buttonRow.find("td.customerid"); 
    var customerId = $customerIdCell.text(); 
}); 

以上是proken分解成線向您展示如何的東西被取出。使用「鏈接」我們可以更簡明地表達出來:

$('.viewCustomer').click(function(){ 
    var customerId = $(this).parent().parent().find("td.customerid").text(); 
} 

您也可以搜索在客戶單元作爲一個更簡潔的方法(一個少函數調用)的鈕釦電池的「兄弟」。

$('.viewCustomer').click(function(){ 
    var customerId = $(this).parent().siblings("td.customerid").text(); 
} 
+0

嗨, 我期待通過一個字符串變量。因此,如果用戶點擊了位於表格第4行的按鈕,並且在該行中,另一個客戶有客戶ID 1234,我想要傳遞變量1234. 乾杯 alexis – alexis 2010-08-24 14:05:59

+0

James謝謝! 那正是我需要的。 Alexis – alexis 2010-08-25 10:53:13