jQuery প্রথম বাদে সমস্ত টেবিল সারি মুছুন


280

JQuery ব্যবহার করে, আমি কীভাবে প্রথমটি বাদ দিয়ে কোনও সারণীতে সমস্ত সারি মুছব? সূচক নির্বাচকদের ব্যবহার করার এটি আমার প্রথম চেষ্টা। উদাহরণগুলি যদি আমি সঠিকভাবে বুঝতে পারি তবে নীচেরগুলিতে কাজ করা উচিত:

$(some table selector).remove("tr:gt(0)");

যা আমি "jQuery অবজেক্টে কিছু টেবিল মোড়ানো, তারপরে সমস্ত 'টিআর' উপাদানগুলি (সারিগুলি) সরিয়ে ফেলুন যেখানে এই জাতীয় সারিগুলির উপাদান সূচকটি শূন্যের চেয়ে বড়। বাস্তবে, এটি ত্রুটি তৈরি না করেই কার্যকর করে, তবে টেবিল থেকে কোনও সারি সরিয়ে দেয় না।

আমি কী অনুপস্থিত, এবং আমি কীভাবে এটি ঠিক করব? অবশ্যই, আমি সোজা জাভাস্ক্রিপ্ট ব্যবহার করতে পারি, তবে আমি jQuery এর সাথে এত মজা করছি যে আমি jQuery ব্যবহার করে এটি সমাধান করতে চাই।


যে কেউ প্রদত্ত কোডটি কাজ করছে না কেন জানেন? ফিল্টার নির্বাচনকারীকে অপসারণ ফাংশনে রাখার সময় আমারও সমস্যা হয়
লেটো

1
এখন যেহেতু আমি এটি আরও ভালভাবে বুঝতে পেরেছি, উপরের কোডটি কাজ করে না কারণ $ (কিছু টেবিল নির্বাচনকারী) কেবলমাত্র টেবিল উপাদান নির্বাচন করে, এর কোনও শিশু নয়, তাই সরানোর জন্য ফাংশনের সন্ধানের জন্য কোনও 'ট্র' উপাদান নেই। সারণী উপাদানগুলির বাচ্চাদের মধ্যে ম্যাচের জন্য অনুসন্ধান ফাংশন অনুসন্ধানগুলি ব্যবহার করে।
কেন পল

এই উত্তরটি তাকান stackoverflow.com/questions/4831334/...
AuthorProxy

উত্তর:


522

এই কাজ করা উচিত:

$(document).ready(function() {
   $("someTableSelector").find("tr:gt(0)").remove();
});

2
আমি যদি প্রথম এবং সেকেন্ড বাদে টেবিল সারিগুলি সরাতে চাই তবে কী হবে?

18
@ ব্যবহারকারী594166 জিটি (0) এর পরিবর্তে জিটি (1) ব্যবহার করুন।
খ্রিস্টিয়ানুয়েরিংস

6
JQuery ওয়েবসাইট থেকে: Because :gt() is a jQuery extension and not part of the CSS specification, queries using :gt() cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. For better performance in modern browsers, use $("your-pure-css-selector").slice(index) instead. আমি using ("# mytable> tr") ব্যবহার করার পরামর্শ দেব sl স্লাইস (1)। সরানো ();
ক্রিস_এফ

আপনার কোডটি আমার পক্ষে কাজ করে নি .. আমি gt (0) কে gt (1) এ পরিবর্তন করেছি এবং এটি কাজ করেছে।
সাড্ক

113

আমি মনে করি এই উদ্দেশ্যটি আরও পঠনযোগ্য:

$('someTableSelector').children( 'tr:not(:first)' ).remove();

শিশুদের ব্যবহারের ক্ষেত্রেও যত্ন নেওয়া হয় যেখানে প্রথম সারিতে অনুসন্ধানের গভীরতা সীমাবদ্ধ করে একটি সারণী থাকে।

আপনার যদি একটি TBODY উপাদান থাকে তবে আপনি এটি করতে পারেন:

$("someTableSelector > tbody:last").children().remove();

আপনার কাছে থ্যাড বা টিফুট উপাদান রয়েছে তবে আপনাকে আলাদা কিছু করতে হবে।


2
পুনরায়: কিছু আলাদা করুন .... এই কাজগুলি:$('someTableSelector > tbody:last > tr:not(:first)').remove();
চিজো

সমস্ত বাচ্চাদের সরাতে আমাকে ডাবল কোট ব্যবহার করতে হয়েছিল। অন্যথায় এটি চিনতে পারেনি। $("#tasks").children().remove();
ডুমসকেট নয়েব

40

এটি সম্পাদন করার আরেকটি উপায় হ'ল আপনার টেবিলের থ্যাড এবং টোডি উপাদানগুলির সাথে jQuery এর ফাঁকা () ফাংশন ব্যবহার করা।

একটি সারণির উদাহরণ:

<table id="tableId">
<thead>
    <tr><th>Col1</th><th>Col2</th></tr>
</thead>
<tbody>
    <tr><td>some</td><td>content</td></tr>
    <tr><td>to be</td><td>removed</td></tr>
</tbody>
</table>

এবং jQuery কমান্ড:

$("#tableId > tbody").empty();

এটি আপনার টেবিলের টডি এলিমেন্টে থাকা প্রতিটি সারি সরিয়ে ফেলবে এবং আপনার শিরোনামটি যেখানে হওয়া উচিত সেখানে থিডি উপাদানটি রাখবে। আপনি কেবল কোনও টেবিলের সামগ্রীটি সতেজ করতে চাইলে এটি কার্যকর হতে পারে।


3
এটি প্রস্তাবিত সমস্ত সমাধানগুলির সেরা পারফরম্যান্স পেতে চলেছে, এবং খুব মার্জিত।
the.jxc

38

এটি যদি আমি থাকতাম তবে আমি সম্ভবত এটি একক নির্বাচককে সিদ্ধ করে দিতাম:

$('someTableSelector tr:not(:first)').remove();

সম্মত হন, তবে আরও নির্দিষ্টভাবে এটি অবশ্যই বলা উচিত: $ ('someTableSelector tbody tr: not (: first)')। সরান ();
মার্কো মুচিয়ানো

30

আপনার নির্বাচক আপনার অপসারণের ভিতরে থাকা প্রয়োজন হয় না।

এটির মতো দেখতে হবে:

$("#tableID tr:gt(0)").remove();

যার অর্থ টেবিলআইডি আইডি সহ টেবিলের প্রথমটি ব্যতীত প্রতিটি সারি নির্বাচন করুন এবং সেগুলি ডিওএম থেকে সরান।


আমি রাজী. আমার ক্ষেত্রে, সারণী অবজেক্টটি আগে নির্বাচন করা হয়েছিল।
কেন পল

প্রথমটি বাদে সমস্ত সারি অপসারণ করতে: - $ ("# টেবিলআইডি ট্র: জিটি (1)")। অপসারণ ();
বিকি

9
$('#table tr').slice(1).remove();

আমার মনে আছে যে 'স্লাইস' জুড়ে আসা অন্যান্য সমস্ত পদ্ধতির চেয়ে দ্রুত, সুতরাং এটি এখানে রাখুন।


কিছু এটি আমার পক্ষে কাজ করে নি। গৃহীত উত্তরটি কৌশলটি মনে হচ্ছে।
ankush981

gtহ্রাস করা হয়, এটি সেরা উত্তর।
সাইবারএড


3

প্রথমটি বাদ দিয়ে (শিরোনাম ব্যতীত) সমস্ত সারি অপসারণ করতে নীচের কোডটি ব্যবহার করুন:

$("#dataTable tr:gt(1)").remove();


1

সহজ রাস্তা :

$("#mytable").find($("tr")).slice(1).remove()

-প্রথমের
তালিকাটিকে টেবিলের তালিকাভুক্ত করুন - উপাদানগুলির তালিকা এবং এটি স্লাইস করুন এবং তালিকার নির্বাচিত উপাদানগুলি সরিয়ে ফেলুন


0

- দুঃখিত এটি খুব দেরিতে উত্তর।

আমি যে কোনও সারি মুছে ফেলার সহজ উপায় খুঁজে পেয়েছি (এবং পুনরুক্তির মাধ্যমে সমস্ত সারি) this

$ ( '# Rowid', '# tableid') সরান ()।

বাকিটা সহজ।



0

একটি অনুষ্ঠানে আবৃত:

function remove_rows(tablename) { 
    $(tablename).find("tr:gt(0)").remove();        
}

তারপরে এটিকে কল করুন:

remove_rows('#table1');
remove_rows('#table2');

0

এটি পুরোপুরি কাজ করে

$("#myTable tbody").children( 'tr:not(:first)' ).html("");

হ্যাঁ, এটি ইতিমধ্যে একাধিকবার আগে পোস্ট করা হয়েছিল। নতুন কিছু?
নিকো হাজে

0

এটি আমার ক্ষেত্রে নিম্নলিখিত পদ্ধতিতে কাজ করে এবং সূক্ষ্মভাবে কাজ করে

$("#compositeTable").find("tr:gt(1)").remove();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.