1
<tbody>
    <tr>
        <td>Name1</td>
        <td>Position1</td>
        <td>Operation1</td>
    </tr>
    <tr>
        <td>Name2</td>
        <td>Position2</td>
        <td>Operation2</td>
    </tr>
</tbody>

たとえば、「Operation1」を含むをクリックする<td>と、値「Name1」の文字列を取得でき<td>ます。これを行う方法?(実際には、異なる 間の文字列は、ここの同じ接尾辞のように、何の関係もありません) ところで、このテーブルは jQuery Datatables プラグインを使用して作成されます。<tr><td><td>

どうもありがとう!

4

3 に答える 3

4

次のように、複数の方法があります。

$('td').parent().children().filter('td:first');
$('td').parent('tr').find('td:first');
$('td').siblings('td:first');

jsFiddle の例を次に示します。

于 2013-05-17T00:20:00.680 に答える
0

これを使って :

$(document).on('click', 'td:last', function(){
    $(this).siblings(':first')
})
于 2013-05-17T00:24:34.277 に答える
0

これは、静的ページの Javascript のみのソリューションです。これにより、イベント リスナーが にアタッチされ、trその子のクリック イベントがインターセプトされます。の内容はtr動的にすることができます。

Array.prototype.forEach.call(document.getElementsByTagName("table"), function (table) {
    Array.prototype.forEach.call(table.getElementsByTagName("tr"), function (tr) {
        tr.addEventListener("click", function (evt) {
            var children = this.children,
                length = children.length;

            if (length && children[length - 1] === evt.target) {
                alert(children[0].firstChild.nodeValue);
            }
        }, false);
    });
});

jsfiddleについて

jqueryの用語ではどれが

$("table tr").on("click", function (evt) {
    var target = $(evt.target);

    if (target.parent().children().last().get(0) === evt.target) {
        alert(target.parent().children().first().text());
    }
});

jsfiddleについて

または、要素ごとにイベントリスナーを設定するtr(「バブリング」) のではなく、イベント「バブリング」を使用して、それを完全に移動することもできますdocument(jquery で Event Delegation と呼ばれるjquery.on )。テーブルから行を追加および削除する場合、またはテーブル全体でさえ、動的システム。

document.addEventListener("click", function (evt) {
    var target = evt.target;

    if (target.nodeName === "TD" && target.parentNode.children[target.parentNode.children.length - 1] === target) {
        alert(target.parentNode.children[0].firstChild.nodeValue);
    }
}, false);

jsfid d leについて

またはjquery委任を使用する

$(document).on("click", "td", function (evt) {
    var target = $(evt.target);

    if (target.parent().children().last().get(0) === evt.target) {
        alert(target.siblings().first().text());
    }
});

jsfiddleについて

于 2013-05-17T00:43:45.607 に答える