与えられた例でいくつかの問題に直面しています。3 つの項目のリストがあり、すべてに削除ボタンがあります。削除ボタンをクリックすると、対応する行が削除されます。それは正常に動作します。
今私の問題は、リストに3つのアイテムすべてがあり、最初のアイテムのみを削除したい場合に、最初の削除ボタンをクリックすると、テーブルのすべての行が削除されることです。
デモHere
与えられた例でいくつかの問題に直面しています。3 つの項目のリストがあり、すべてに削除ボタンがあります。削除ボタンをクリックすると、対応する行が削除されます。それは正常に動作します。
今私の問題は、リストに3つのアイテムすべてがあり、最初のアイテムのみを削除したい場合に、最初の削除ボタンをクリックすると、テーブルのすべての行が削除されることです。
デモHere
コードには基本的な欠陥が 1 つあります。
クリック時にボタン タグのみにバインドしていましたが、HTML にはボタン タグがなく、ボタン タイプの入力タグがありました。
この後、この場合は不要な「id」という変数を作成しています。jQquery では、これは必要ありません。
次のコード行を使用すると、すべてが処理されます。したがって、生活を簡素化し、これを jQuery をできるだけ短くします。
$(this).parent().parent().remove();
#divGrid が空である限り、#myTable 子要素全体を削除しない限り、div が空になることはないため、虚偽のステートメントです。
次の条件を使用してそれを行うことができます
if( $('#divGrid ').is(':empty') ) {
$('#divGrid').html("All item removed");
}
本当に必要な jQuery を 3 行だけ使用したソリューションを次に示します。
編集:行が空であることを確認するためのフィドルがあり、空の場合、テーブルは「すべてのアイテムが削除されました」というテキストに置き換えられます
これを試して
$(':button').click(function() {
$(this).closest("tr").remove();
});
デモ http://jsfiddle.net/BLV2g/14/
より安全にするために、ボタンは他の場所を削除しません
$('#myTable :button').click(function() {
$(this).closest("tr").remove();
});
これがあなたがやりたいことだと思います:
$('#myTable :button').click(function () {
$(this).parent().parent().remove();
var rowCount = $('#myTable tr').length;
if (rowCount == 1) {
$('#divGrid').empty();
$('#divGrid').html("All item removed");
}
});
背後にあるロジックは次のとおりです。
これを試して、
function delSpec(rl)
{
r=document.getElementById("insSpecc").rows.length;
if(r!=2){
document.getElementById("insSpecc").deleteRow(r-1)
}
}