2011-02-22 131 views
0

因此,我們在一個表列中使用帶有兩個錨標籤的MVC3網格。 我們希望通過單擊一行來獲取第一個表格單元格中的錨定標記值。 我們在IE *中取得成功,但在Firefox和Chrome中無法使用。 這裏是代碼:JQuery只在IE中工作

$("#interestTypesGrid tbody tr").live("click", function (e) { 
    $("#SelectedInterestTypeID").val($(this).find('td:first a').val()); 
    $.post(URLGetInterestRates, $("#FormMasterData").serialize(), function (data) { $("#pagedInterestRates").html(data); }); 
}); 

所以問題是:

$(this).find('td:first a').val(); 

在IE這隻作品!

+6

如果它只適用於IE瀏覽器,則會出現嚴重錯誤。它應該只**不**在IE中工作。 – 2011-02-22 18:13:20

回答

3

<a>標籤沒有價值屬性,所以.val()不應該工作。

嘗試使用.text()代替(您可能需要$.trim()它)。

$(this).find('td:first a').text() 
3

val函數主要用於檢索和設置表單元素的值。要獲得/設置使用texthtml功能

$("#interestTypesGrid tbody tr").live("click", function (e) { 
    $("#SelectedInterestTypeID").val($(this).find('td:first a').text()); 
    $.post(URLGetInterestRates, $("#FormMasterData").serialize(), function (data) { $("#pagedInterestRates").html(data); }); 
}); 

在這段代碼我假設#SelectedInterestTypeID是一個表單元素非形式標記試的內容,如果不是你應該改變,要text以及。

我在IE和Chrome中測試了這個working sample

更新

樣本HTML您提供:

<tr> 
    <td> 
     <a href="/MasterData/ShowInterestTypeDetails?id=11" value="11"> 
      <img src = "../../Content/img/icon_detail_16px.gif" alt="" /> 
     </a> 
    </td> 
    <td>q</td> 
    <td>34</td> 
    <td>q12</td> 
    <td> 
     <a href="/MasterData/DeleteInterestType?id=11" value="11"> 
      <img src = "../../Content/img/icon_delete_16px.gif" alt="" /> 
     </a> 
    </td> 
</tr> 

value不是HTML有效的屬性。如果你的目標HTML5你可以使用一個數據屬性和jQuery的的data功能,其實它很可能是最容易提上tr屬性:

<tr data-interestType='{"id":11}'> 

然後使用數據功能,你的JavaScript:

$("#interestTypesGrid tbody tr").live("click", function (e) { 
    $("#SelectedInterestTypeID").val($(this).data("interestType").id); 
    $.post(URLGetInterestRates, $("#FormMasterData").serialize(), function (data) { $("#pagedInterestRates").html(data); }); 
}); 

另外working sample使用這種方法。

所有的標準都被詛咒,你可以使用attr jquery函數來檢索任意元素屬性的值。

+0

謝謝你的回覆。但問題是,在錨標籤我們有img。所以我們需要從錨標籤中獲取一些價值。 ​​​​q​​34​​Q12​​ Bojan 2011-02-22 18:42:04