سؤال

لدي جدول HTML مع صف واحد وعدة TRS التي تتم إضافتها ديناميكيًا. كل TR لديه زر في العمود الأخير.

ما الذي أحتاجه حتى ينقر على الزر ، يتم إزالة الأقرب من TR من الجدول؟ حاولت استخدام $(this).closest.remove() لكن هذا لم ينجح ، لذا أفترض أنني بحاجة إلى إضافة معرفات أو أي شيء آخر هنا.

سيبدو جدول مثال أساسي كما يلي:

<table class='tableClass'>
    <tbody>
        <th>
            <td>Text</td><td>Text</td><td>Text</td>
        </th>
        <tr>
            <td>Text</td><td>Text</td><td><button type='button' class='btnClass'>Delete</button></td>
        </tr>
        <tr>
            <td>Text</td><td>Text</td><td><button type='button' class='btnClass'>Delete</button></td>
        </tr>
        <tr>
            <td>Text</td><td>Text</td><td><button type='button' class='btnClass'>Delete</button></td>
        </tr>
    </tbody>
</table>
هل كانت مفيدة؟

المحلول

تحتاج إلى إعطاء closest وظيفة المحدد. جرب هذا:

$('.btnClass').click(function() {
    $(this).closest('tr').remove();
});

أيضا ، HTML الخاص بك غير صالح th يجب أن يكون طفلاً tr:

<table class='tableClass'>
    <tbody>
        <tr>
            <th>Text</th>
            <th>Text</th>
            <th>Text</th>
        </tr>
        <tr>
            <td>Text</td>
            <td>Text</td>
            <td>
                <button type='button' class='btnClass'>Delete</button>
            </td>
        </tr>
        <tr>
            <td>Text</td>
            <td>Text</td>
            <td>
                <button type='button' class='btnClass'>Delete</button>
            </td>
        </tr>
        <tr>
            <td>Text</td>
            <td>Text</td>
            <td>
                <button type='button' class='btnClass'>Delete</button>
            </td>
        </tr>
    </tbody>
</table>

مثال كمان

نصائح أخرى

يمكنك القيام بذلك باستخدام .closest( selector ) بشكل صحيح مثل:

$(this).closest('tr').remove();

في الواقع في الكود الخاص بك:

$(this).closest.remove()
            ___^___

أنت في عداد المفقودين على كل من أقواس الافتتاح والإغلاق () والمحدد tr.

http://jsfiddle.net/cpvh9/

$(".btnClass").click(function(){
        $(this).parents('tr').remove();
    });

من رمز HTML الخاص بك ، يبدو أنك تريد إزالة الأصل TR ، جرب هذا

$(".btnClass").click(function(){
    $(this).parents("tr:first").remove();
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top