2016-10-19 5 views
1

すべての入力値をテキストに変換するjs関数があります。 1行だけをプレーンテキストに変換したい(すべての行に5つのセルと保存用のボタンがあります)、そのボタンでその行データをプレーンテキストに変換します。 .closestオブジェクトを使用しようとしていましたが、失敗しました。値を入力からプレーンテキストに変換する

function disable_inp() { 
    $("tr:gt(0) td:has(input)").text(function() { 
     return $('input', this).val(); 
    }); 
    } 
+0

アレイ... –

+0

あなたは[ '?:eq'セレクタ]に精通しています(https://api.jquery.com/eq-selector/) –

+0

は同様にあなたのHTMLを投稿してください。また、これは最初の行でのみ行い、他の行では実行しませんか? –

答えて

1

あなたは:eqなく:gtを使用する必要があります。 eqは選択範囲のインデックスを取得しますが、gtはより大きい値です。

function disable_inp() { 
    $("tr:eq(0) td:has(input)").text(function() { 
    return $('input', this).val(); 
    }); 
} 

そしてボタンで、あなたが同じことを行うことができます。

ここ
$("button").click(function disable_inp() { 
    $(this).closest("tr").find("td:has(input)").text(function() { 
    return $('input', this).val(); 
    }); 
}); 

.closest()は、選択と一致し、そこから適用される最初の親を見つけるでしょう。文字列への変換

0
button.click(function(){ 
    var $row = $(this).parent().parent(); //assuming it's not wrapped this will be the <tr> 
    $row.find("td").each(function(){ 
     var plaintext = $(this).text(); 
     // do stuff with the plaintext 
    }); 
}); 
+0

説明を外に書く方が良いです。 –

関連する問題