2

サンプル Html (これには、さらに多くの行のうちの 1 つだけが含まれます)。

<table id="ctl00_ContentPlaceHolder1_categoryTable" class="categoryTable sortAsc editInputs" border="0">
    <tbody>
     <tr>
     <td>8</td>
     <td>
     <input name="ctl00$ContentPlaceHolder1$ctl17" type="text" value="307349_335692806541952_16061425_n.jpg" readonly="readonly" />
    </td>
    <td><input name="ctl00$ContentPlaceHolder1$ctl18" type="text" value="key1 " readonly="readonly" /></td>
    <td>3/28/2013</td>
    <td>.jpg</td>
    <td>28120</td>
    <td><a href="download.aspx filename=307349_335692806541952_16061425_n.jpg&type=image">307349_335692806541952_16061425_n.jpg</a></td>
    <td>
    <a href="javascript:void(0)" class="editLinkClass">Edit </a><a href="javascript:void(0)" class="deletetLinkClass"> Delete</a><a href="javascript:void(0)" class="updateLinkClass" style="display:none;">Update</a><a href="javascript:void(0)" class="cancelLinkClass" style="display:none;"> Cancel</a>
    </td>
    <tr>
    </tbody>

私のJavascript

$(document).ready(function () {
            console.log("document ready")
            $(".categoryTable tr td a").click (function (event) {
                console.log($(this).text() + "click detected");
                if ($(this).text() === "Edit ") {//compare with "Edit " not "Edit"
                    console.log("Edit");
                    console.log($(this).parent().parent().children('td input').text());
                    $(this).siblings(".deletetLinkClass").attr("style", "display:none");
                    $(this).siblings(".updateLinkClass").attr("style", "display:;");
                    $(this).siblings(".cancelLinkClass").attr("style", "display:;");
                    $(this).attr("style", "display:none")
                }
                else
                    console.log("no EDit");
            });
        });

私がやろうとしているのは、同じ行の入力タグを選択することですが、同じ行のアンカータグをクリックするとtr異なります。td次のjQueryステートメントの多くの組み合わせを試しましたが、成功しませんでした。助けてください。 $(this).parent().parent().children('td input').text()ここでthisは、クリックされたアンカー タグを表します。より明確にするために、テーブル内のすべての入力タグを選択するのではなく、同じ行にあるものだけを選択します。

4

3 に答える 3

2

とを使用parents()find()ます。

入力の値を取得するには、val()and not text()..を使用します。

$(this).parent().parent().children('td input').text();
                                           //--^^^^^^---here  

これを試して

var inputs=$(this).parents('tr').find('input');
$.each(inputs,function(){  //<---- loop since you have multiple input
    console.log($(this).val()); //.val() since val() is used to get the input value..
})

または と を使用closest()find()ます。

var inputs=$(this).closest('tr').find('input');

コンテキストの使用

var inputs = $('td input', $(this).closest('tr')).val();

ここで働くフィドル

于 2013-05-15T06:04:34.690 に答える
0

以下のコードを試して、指定された行からの入力を見つけてください

$(this).closest('tr').find('td input').text()
于 2013-05-15T06:05:22.577 に答える