2

私はこのコードを持っています:

<tr class="editField">
  <td>abc</td>
  <td>123</td>
  </td>
</tr>
<tr class="editField">
  <td>dfg</td>
  <td>456</td>
  </td>
</tr>

そして、jQueryでダイアログを開くためのこのjavascriptがあります:

$( ".editField" ).click(function() {
        alert(...); // should get me 123
});

1 番目をクリックしてtr2 番目のコンテンツtd(つまり 123) を取得するとしたら、何を書けばよいでしょうか?

4

4 に答える 4

13

あなたの現在のマークアップを考えると、私はお勧めします:

$( ".editField" ).click(function() {
        alert($(this).find('td:eq(1)').text());
});

しかし、これは与えられた例では機能しますが、class-name 'value など、'value' を復元したい要素にいくつかの定義属性を追加する方がはるかに簡単です (そしてその後、はるかに信頼性が高くなります)。 '、次のように HTML を指定します。

<tr class="editField">
  <td>abc</td>
  <td class="value">123</td>
</tr>

そしてjQuery:

$( ".editField" ).click(function() {
        alert($(this).find('td.value').text());
});

または、もちろん、「値」が常に(関連するクラスの)特定の行の最後の要素になる場合は、代わりに次を使用できます。 td

$( ".editField" ).click(function() {
        alert($(this).find('td:last').text());
});

ちなみに、HTML の形式が正しくないことに注意してください</td>。サンプル コードの両方の行の最後のセルの後に余剰があります。

参考文献:

于 2012-08-29T22:33:14.150 に答える
1

これを試して:

$( ".editField" ).click(function() {

    var clickedValue = $(this).find('td:first').next().text();

alert(clickedValue );    

});

フィドルリンク: http://jsfiddle.net/9cRRj/8/

于 2012-08-30T13:24:23.980 に答える
1
  $(function () {
        $(".Cartbtn").click(function () {
            var temp = {
                "Id": $(this).data("itemid"),
                "Name": $(this).data("itemname"),
                "Price": $(this).data("itemprice"),
                "Quantity": $(this).data("itemqty"),
                "ImageUrl": $(this).data("itemimgurl"),
            });
于 2018-08-13T22:21:26.070 に答える