আইডি দ্বারা উপাদান সরান


1128

স্ট্যান্ডার্ড জাভাস্ক্রিপ্ট সহ কোনও উপাদান সরানোর সময়, আপনাকে অবশ্যই প্রথমে এর পিতামাতার কাছে যেতে হবে:

var element = document.getElementById("element-id");
element.parentNode.removeChild(element);

প্রথম প্যারেন্ট নোডে যাওয়ার পরে আমার কাছে কিছুটা অদ্ভুত লাগছে, জাভাস্ক্রিপ্ট এর মতো কাজ করার কোনও কারণ আছে কি?


534
জেমস যেমন বলেছিলেন, ডিওএম সরাসরি কোনও বস্তু সরানো সমর্থন করে না। আপনাকে এর পিতামাতার কাছে যেতে হবে এবং সেখান থেকে সরিয়ে ফেলতে হবে। জাভাস্ক্রিপ্ট কোনও উপাদানকে আত্মহত্যা করতে দেবে না, তবে তা শিশু হত্যার অনুমতি দেয় ...
মার্ক হেন্ডারসন

21
কোন কারণ আছে? রিচার্ড ফেনম্যান বলেন, না । (আচ্ছা প্রযুক্তিগত আত্মপক্ষ সমর্থন দেখতে যদি আপনার কোন গাছ গঠন প্রোগ্রাম লিখেছি সহজ। সন্তান পিতা বা মাতা অবহিত করতে হবে যাহাই হউক না কেন অন্যথায় ট্রী কাঠামো ভেঙ্গে যেতে পারে। যেহেতু এটি তা অভ্যন্তরীণভাবে যাহাই হউক না কেন করতে হবে তা আপনি একটি এক লাইন ফাংশন প্রদান , এটি আপনার জন্য কেবল একটি সুবিধাজনক ফাংশন যা আপনি নিজের
সংজ্ঞাও দিতে পারেন

6
কেবলমাত্র আমি দেখতে পাচ্ছি যে কোনও এক্সএমএল / এক্সএইচটিএমএল ডকুমেন্টে সর্বদা একটি মূল উপাদান থাকা উচিত, সুতরাং আপনি এটি মুছে ফেলতে পারবেন না কারণ এর পিতামাতা নেই
অ্যালেক্স কে

5
আমি জোহানের কাজটি বেশ পছন্দ করি এবং আমি নিশ্চিত না যে কেন এই ফাংশনগুলি স্থানীয়ভাবে সরবরাহ করা হয় না। দর্শকের সংখ্যা দ্বারা প্রমাণিত, এটি একটি খুব সাধারণ কাজ।
জাজ

12
আপনি element.remove()সরাসরি ES5 হিসাবে ব্যবহার করতে পারেন । আপনার পিতামাতার দরকার নেই!
গিবল্ট

উত্তর:


659

আমি জানি যে নেটিভ ডিওএম ফাংশনগুলিকে বাড়ানো সর্বদা সেরা বা সর্বাধিক জনপ্রিয় সমাধান নয়, তবে এটি আধুনিক ব্রাউজারগুলির জন্য দুর্দান্ত কাজ করে।

Element.prototype.remove = function() {
    this.parentElement.removeChild(this);
}
NodeList.prototype.remove = HTMLCollection.prototype.remove = function() {
    for(var i = this.length - 1; i >= 0; i--) {
        if(this[i] && this[i].parentElement) {
            this[i].parentElement.removeChild(this[i]);
        }
    }
}

এবং তারপরে আপনি এর মতো উপাদানগুলি মুছতে পারেন

document.getElementById("my-element").remove();

অথবা

document.getElementsByClassName("my-elements").remove();

দ্রষ্টব্য: এই সমাধান IE 7 এবং নীচের জন্য কাজ করে না। ডিওএম বাড়ানোর বিষয়ে আরও তথ্যের জন্য এই নিবন্ধটি পড়ুন

সম্পাদনা : node.remove()২০১২ সালে আমার উত্তর পর্যালোচনা, উদ্ধারকালে এসেছে এবং নিম্নলিখিত হিসাবে ব্যবহার করা যেতে পারে (উপরের পলিফিল ছাড়া):

document.getElementById("my-element").remove();

অথবা

[...document.getElementsByClassName("my-elements")].map(n => n && n.remove());

এই ফাংশনগুলি সমস্ত আধুনিক ব্রাউজারে উপলব্ধ (আইই নয়)। এমডিএন আরও পড়ুন ।


3
এটি [ডকুমেন্ট.জেটএলিমেন্টস বাইক্লাসনাম ("আমার-উপাদানসমূহ") হওয়া উচিত নয় [0]। সরান (); ] আমি মনে করি ফাংশন অপসারণ () অ্যারে দ্বারা প্রয়োগ করা হয় না। কোনও শ্রেণীর সমস্ত উপাদান বা কোনও নির্বাচক কোনও অ্যারে ফিরিয়ে দেওয়ার জন্য, আপনাকে সমস্ত উপাদানগুলির মাধ্যমে পুনরাবৃত্তি করতে হবে এবং প্রতিটিটিতে মুছে ফেলা কল করতে হবে।
সেদাত কিলিঙ্ক

1
@ সেদাতকিলিঙ্ক, আপনি কি প্রকৃত স্নিপেট ব্যবহার করে দেখেছেন? কোন অ্যারে জড়িত নেই, বরং NodeListবা HTMLCollectionযা অ্যারের মতো উপাদানগুলির সেট। দ্বিতীয় পদ্ধতির সংজ্ঞা এই "উপাদান সেটগুলি" সরানোর অনুমতি দেয়।
জোহান ডেটমার

1
ক্রোম কনসোলে এটি চালানো কেবল একবার ব্যবহার করার সময় একটি উপাদান মুছবে বলে মনে হয় document.getElementsByClassName("my-elements").remove();। সম্পাদনা: আসলে এটি একটি গুচ্ছ মুছে ফেলে তবে শেষ করার জন্য পুনরায় দৌড়ানো দরকার। ক্লাস "মন্তব্য-অনুলিপি" সহ এই পৃষ্ঠায় এটি ব্যবহার করে দেখুন।
ড্যানিয়েলস্ট

2
স্লাইডড আপনি ঠিক বলেছেন, আমার খারাপ। আমি উপাদানগুলির মাধ্যমে পিছনে লুপ করতে ফাংশনটি সংশোধন করেছি। ঠিকঠাক কাজ মনে হচ্ছে। আপনি যে আচরণের কথা বলছেন সেটি সম্ভবত আপডেট ইনডেক্সের কারণে ঘটে।
জোহান ডেটমার 14

1
এটি করবেন না। ভাষাটি যেভাবে ইচ্ছা সেইভাবে আইটেমগুলি সরিয়ে ফেলুন। এক্সএমএল পার্সিংয়ের সাথে পরিচিত যে কেউ বাচ্চাদের মুছতে পিতামাতার কাছে যাওয়ার প্রয়োজনীয়তাটি স্বীকার করবে। এইচটিএমএল এক্সএমএল (সাজানো) এর একটি সুপারসেট।
Hal50000

283

ক্রসব্রোজার এবং আইই> = 11:

document.getElementById("element-id").outerHTML = "";

3
এটি সহজ, সবচেয়ে নির্ভরযোগ্য এবং দ্রুত সমাধান বলে মনে হচ্ছে। আমি উপাদানটি মুছতে হবে না যাতে আমি শেষ লাইনটি এড়িয়ে যাই, তবে এটি কোনও উপায়ে কোনও উপায়ে যুক্ত করা উচিত নয় ... দ্রষ্টব্য : ট্যাগগুলির $.readyজেএস বিকল্পের চেয়ে দ্রুততর চেষ্টা করার সময় আমি এটি পেয়েছি noscript। আমি কীভাবে এটি চেয়েছিলাম এটি ব্যবহার করতে, আমাকে এটি 1 মিমি setTimeoutফাংশনে আবদ্ধ করতে হয়েছিল। এটি আমার সমস্ত সমস্যা একবারে সমাধান করে। এবং Gracias।
ডিজিও

মনে রাখবেন outerHTMLএখনও মানের সাথে একটি নতুন (এর) সংযোজন। আপনি যদি লেখার সময় কোনও সফ্টওয়্যার> 6 এ সমর্থন খুঁজছেন তবে আপনার আর একটি সমাধান প্রয়োজন। removeঅনুষ্ঠানে অন্যান্যের উল্লেখ একটি অনুরূপ ক্ষেত্রে দেখা যায়। যথারীতি এটি পলিফিল বাস্তবায়ন করা নিরাপদ।
সুপার ক্যাট

delete elementআপনি console.log(element)delete element
জেএসে

2
এটি removeChild(আমার সিস্টেমে প্রায় 6-7%) তুলনায় কিছুটা ধীর । Jsperf.com/clear-outerhtml-v-removechild/2
আলেজান্দ্রো গার্সিয়া ইগলেসিয়াস

1
এটি এমন একটি জায়গা ছেড়ে দিতে পারে যেখানে যদি আপনি অপসারণের চেষ্টা করছেন তবে যদি কোনও আইফ্রেমে ব্যবহৃত হত।
ল্যাকোস্টেনাইকোডার

164

আপনি একটি removeফাংশন তৈরি করতে পারেন যাতে আপনাকে এটি সম্পর্কে প্রতিবার চিন্তা না করতে হবে:

function removeElement(id) {
    var elem = document.getElementById(id);
    return elem.parentNode.removeChild(elem);
}

12
আপনি বিশ্বব্যাপী যাচ্ছে ছাড়া এক-লাইনের চান, আপনি পরিবর্তন করতে পারেন elemথেকে remove.elem। এইভাবে ফাংশনটি নিজেই উল্লেখ করে, তাই আপনাকে আর একটি বৈশ্বিক পরিবর্তনশীল তৈরি করতে হবে না। :-)
twiz

4
তো, তোমার এলিমে ফেরত দেওয়ার দরকার কী? কেন নয়function remove(id) { document.getElementById(id).parentNote.removeChild(document.getElementById(id)); }
জ্যাচ লিসোবে

4
@ জ্যাচএল: আপনার সমাধানটি আরও সুস্পষ্ট বলে মনে হলেও, এটি দুটি ডোম লুকআপ সম্পাদন করে যা ধীরে ধীরে এবং অন্য সমাধানগুলি এড়াতে চায় বলে মনে হয়।
Wk_of_Angmar

3
কাজ করে না. অনেকগুলি ত্রুটি। এটি কাজ করে: var elem = document.getElementById ('id'); elem.parentNode.removeChild (ELEM);
ম্যাচ ম্যাচ

2
বাহ, এত জটিল কেন। আইডি স্ট্রিংয়ের পরিবর্তে কেবল উপাদানটি নিজেই ফাংশনে পাস করুন। এইভাবে উপাদানটি পুরো ফাংশনে অ্যাক্সেসযোগ্য এটি প্লাস এটি একটি লাইনার থেকে যায়
ডেভিড ফারিয়া

97

এটি ডিওএম সমর্থন করে । "অপসারণ" বা "মুছুন" এর জন্য পৃষ্ঠাটি অনুসন্ধান করুন এবং সরানচিল্ড কেবল নোড অপসারণ করে।


13
এটি আমার আসল প্রশ্নের উত্তর দেয় তবে জাভাস্ক্রিপ্ট কেন এভাবে কাজ করে?
জাজ

5
আমি এখানে অনুমান করছি, তবে আমি ধরে নেব এটির মেমরি পরিচালনার সাথে সম্পর্কিত। প্যারেন্ট নোড সম্ভবত শিশু নোডের পয়েন্টারগুলির একটি তালিকা ধারণ করে। আপনি যদি কেবল কোনও নোড মুছে ফেলে থাকেন (পিতামাতাকে ব্যবহার না করে), পিতামাতারা এখনও পয়েন্টারটি ধরে রাখবেন এবং মেমরি ফাঁস হবেন। তাই এপিআই আপনাকে শিশুটিকে মুছতে পিতামাতার একটি ফাংশন কল করতে বাধ্য করে। এটিও দুর্দান্ত কারণ এটি চাইল্ড নোডের মাধ্যমে গাছের উপর দিয়ে প্রতিটিটি মুছে ফেলার কল করে এবং স্মৃতি ফাঁস করে না can
চাদামস

2
ওহে ছেলেরা, যদিও সেই রেফারেন্সটির এটি নেই, আমি এটি দুর্ঘটনাক্রমে খুঁজে পেয়েছি। লেখার element.remove();কাজ হবে। হয়তো এটি নতুন কিছু। তবে আমার জন্য প্রথমবার এবং এটি কাজ করে। আমি মনে করি এটি সর্বদা কাজ করা উচিত ছিল কারণ এটি খুব বেসিকের জিনিস থাকতে হবে।
মুহাম্মদ উমার

1
তবে এটি আই 7 এবং নীচে কাজ করে না। আই 7 এবং নীচে থেকে, সরান () কাজ করে না
fanfan1609

1
যদি আমার অনুমান করতে হয়, এটির মতো কাজ করার কারণটি হ'ল ডোম উপাদানগুলি সেগুলি সরাতে পারে না। আপনি এর পাদদেশ থেকে প্রবাদের বাক্সটি মুছে ফেলছেন। আপনাকে এটি ধারক থেকে সরিয়ে ফেলতে হবে। অন্তত আমি এটি সম্পর্কে চিন্তা করার চেষ্টা করি।
ফিল্ট

82

ডিওএমটি নোডের একটি গাছে সংগঠিত হয়, যেখানে প্রতিটি নোডের একটি মূল্য থাকে যার সাথে তার শিশু নোডের উল্লেখের তালিকা থাকে। সুতরাং element.parentNode.removeChild(element)অভ্যন্তরীণভাবে যা ঘটছে ঠিক তা অনুকরণ করুন: প্রথমে আপনি প্যারেন্ট নোডে যান, তারপরে শিশু নোডের রেফারেন্সটি সরিয়ে দিন।

DOM4 পর্যন্ত একটি সাহায্যকারী ফাংশন একই জিনিস করে প্রদান করা হয়: element.remove()। এটি 2016 87% ব্রাউজারে ( ২০১ of হিসাবে) কাজ করে, তবে আইই ১১ নয় you যদি আপনাকে পুরানো ব্রাউজারগুলি সমর্থন করতে হয় তবে আপনি এটি করতে পারেন:


2
দয়া করে "নেটিভ ডোম ফাংশনগুলি সংশোধন করবেন না "
এমিল বার্গারন

36

একটি উপাদান সরানোর জন্য:

 var elem = document.getElementById("yourid");
 elem.parentElement.removeChild(elem);

উদাহরণস্বরূপ একটি নির্দিষ্ট শ্রেণীর নাম সহ সমস্ত উপাদান মুছে ফেলার জন্য:

 var list = document.getElementsByClassName("yourclassname");
 for(var i = list.length - 1; 0 <= i; i--)
 if(list[i] && list[i].parentElement)
 list[i].parentElement.removeChild(list[i]);

এটি বিদ্যমান উত্তরগুলি দ্বারা ভালভাবে কভার করা হয়েছে।
কাইলমিট

4
শ্রেণীর নাম দ্বারা সরানোর সাধারণ উদাহরণের জন্য +1। এটি অন্য
জবাবগুলির

কেন if(list[i] && list[i].parentElement)লাইন প্রয়োজনীয়? প্রতিটি উপাদানটির অস্তিত্ব কি নিশ্চিত নয় যে এটি getElementsByClassNameপদ্ধতি দ্বারা ফিরে এসেছে ?
হাইড্রোথার্মাল

দুর্ভাগ্যক্রমে আমি যতদূর জানি অস্তিত্বের সত্যতা নিশ্চিত করা যায় না তবে আমি সে সম্পর্কে বিশদ জানি না। আমি একবার মাত্র কিছু অদ্ভূত অপরিজ্ঞাত বা নাল মানটি অভিজ্ঞতা পেয়েছি এবং আমি আরও তদন্ত ছাড়াই সেই চেকটি সেখানে রেখেছি। সুতরাং এটি হ্যাক একটি বিট।
csjpeter

এটি হওয়া উচিতdocument.getElementsByClassName(...
কর্মী

21

আপনি শুধু ব্যবহার করতে পারেন element.remove()


13
element.remove()বৈধ জাভাস্ক্রিপ্ট নয় এবং কেবল ক্রোমের মতো নির্দিষ্ট ব্রাউজারগুলিতে কাজ করে ।
জাজ

4
জোশ, এটি বৈধ জাভাস্ক্রিপ্ট, কেবল ফায়ারফক্স এবং ক্রোম এটি প্রয়োগ করেছে (এমডিএন দেখুন)
টিম এনগুইন

10
আমার খারাপ, element.remove() হয় DOM4 সঙ্গে বৈধ জাভাস্ক্রিপ্ট , এবং সমস্ত আধুনিক ব্রাউজারে কাজ করে স্বাভাবিকভাবেই Internet Explorer এর ব্যতিক্রম।
জাজ

24
ফায়ারফক্স এবং ক্রোমে দুর্দান্ত কাজ করা Working কে IE সম্পর্কে চিন্তা করে
অরুণ শর্মা

13
আইবি সম্পর্কে চাকরির লোকেরা যত্নশীল!
sqram

18

ChildNode.remove()পদ্ধতি গাছ এটা জন্যে থেকে অবজেক্ট সরিয়ে ফেলা হয়।

https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove

এখানে একটি কল্পনা রয়েছে যা দেখায় যে আপনি কীভাবে কল করতে পারেন document.getElementById('my-id').remove()

https://jsfiddle.net/52kp584L/

**

নোডলিস্ট বাড়ানোর দরকার নেই। এটি ইতিমধ্যে কার্যকর করা হয়েছে।

**


2
দ্রষ্টব্য, এটি IE এর কোনও সংস্করণে সমর্থিত নয়!
ম্যাক্রোমন

1
আপনি যদি এখনও IE এর জন্য বিকাশ করেন তবে আপনার জন্য আমি খুব দুঃখিত sorry
অ্যালেক্স ফ্যালেনস্টেট

আপনি IE জন্য বিকাশ করবেন না? আমি আপনার ক্লায়েন্ট বা গ্রাহকদের জন্য খুব দুঃখিত।
ম্যাক্রোম্যান

13

আপনি remove()DOM এর পদ্ধতি ব্যবহার করে সরাসরি সেই উপাদানটি সরাতে পারেন ।

এখানে একটি উদাহরণ:

let subsWrapper = document.getElementById("element_id");
subsWrapper.remove();
//OR directly.
document.getElementById("element_id").remove();


7

প্রথম প্যারেন্ট নোডে যাওয়ার পরে আমার কাছে কিছুটা অদ্ভুত লাগছে, জাভাস্ক্রিপ্ট এর মতো কাজ করার কোনও কারণ আছে কি?

ফাংশনের নাম removeChild(), এবং কোনও পিতামাতা না থাকলে কীভাবে শিশুটিকে সরানো সম্ভব? :)

অন্যদিকে, আপনি যেমন দেখিয়েছেন তেমন আপনাকে সবসময় কল করতে হবে না। element.parentNodeপ্রদত্ত নোডের পিতামাত্ত নোড পেতে কেবল সহায় help আপনি যদি ইতিমধ্যে প্যারেন্ট নোডটি জানেন, আপনি কেবল এটির মতো এটি ব্যবহার করতে পারেন:

উদা:

// Removing a specified element when knowing its parent node
var d = document.getElementById("top");
var d_nested = document.getElementById("nested");
var throwawayNode = d.removeChild(d_nested);

https://developer.mozilla.org/en-US/docs/Web/API/Node/removeChild

================================================== =======

আরও কিছু যুক্ত করতে:

কিছু উত্তর উল্লেখ করেছে যে ব্যবহারের পরিবর্তে parentNode.removeChild(child);, আপনি ব্যবহার করতে পারেন elem.remove();। তবে আমি যেমনটি লক্ষ্য করেছি যে দুটি ফাংশনের মধ্যে একটি পার্থক্য রয়েছে এবং সেগুলির উত্তরগুলিতে এটি উল্লেখ করা হয়নি।

আপনি যদি ব্যবহার করেন removeChild()তবে এটি সরানো নোডের একটি রেফারেন্স ফিরিয়ে দেবে।

var removedChild = element.parentNode.removeChild(element); 
console.log(removedChild); //will print the removed child.

আপনি যদি ব্যবহার করেন তবে elem.remove();এটি আপনাকে রেফারেন্সটি ফিরিয়ে দেবে না।

var el = document.getElementById('Example');
var removedChild = el.remove(); //undefined

https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove

এই আচরণটি Chrome এবং FF এ লক্ষ্য করা যায় observed আমি বিশ্বাস করি এটি লক্ষ্য করার মতো :)

আশা করি আমার উত্তর প্রশ্নের কিছুটা মূল্য যোগ করবে এবং সহায়ক হবে !!


6

Ele.parentNode.removeChild (এলে) ব্যবহার করা ফাংশন আপনার তৈরি করা উপাদানগুলির জন্য কাজ করবে না তবে এখনও এইচটিএমএল .োকানো হয়নি। JQuery এবং প্রোটোটাইপের মতো গ্রন্থাগারগুলি সীমাবদ্ধতা এড়াতে নীচের মতো একটি পদ্ধতি বুদ্ধিমানের সাথে ব্যবহার করে।

_limbo = document.createElement('div');
function deleteElement(ele){
    _limbo.appendChild(ele);
    _limbo.removeChild(ele);
}

আমি মনে করি জাভাস্ক্রিপ্ট এর মতো কাজ করে কারণ ডিওএমের মূল ডিজাইনাররা পিতামাতা / শিশু এবং পূর্ববর্তী / পরবর্তী নেভিগেশনকে ডিএইচটিএমএল পরিবর্তনের চেয়ে বেশি অগ্রাধিকার হিসাবে ধরেছিল যা আজ এত জনপ্রিয়। এক <ইনপুট টাইপ = 'টেক্সট'> থেকে পড়তে এবং ডিওএম-এ আপেক্ষিক অবস্থানের সাথে অন্যকে লেখতে সক্ষম হওয়া 90 এর দশকের মাঝামাঝি সময়ে কার্যকর ছিল, এমন সময় যখন পুরো এইচটিএমএল ফর্ম বা ইন্টারেক্টিভ জিইউআই উপাদানগুলির গতিশীল প্রজন্ম সবেমাত্র একটি পলক ছিল when কিছু বিকাশকারী চোখ।


3

প্রথম প্যারেন্ট নোডে যাওয়ার পরে আমার কাছে কিছুটা অদ্ভুত লাগছে, জাভাস্ক্রিপ্ট এর মতো কাজ করার কোনও কারণ আছে কি?

আইএমএইচও: এর কারণ হ'ল আমি অন্যান্য পরিবেশে যেমন দেখেছি: আপনি কোনও কিছুর সাথে আপনার "লিঙ্ক" এর উপর ভিত্তি করে একটি ক্রিয়া করছেন। আপনি এটির সাথে যুক্ত থাকাকালীন এটি মুছতে পারবেন না।

গাছের অঙ্গ কাটার মতো। কাটার সময় গাছের নিকটতম পাশে বসুন বা ফলাফলটি হবে ... দুর্ভাগ্যজনক (যদিও মজার)।


2

এটি আসলে ফায়ারফক্স থেকে আসে ... একবারের জন্য, আইই প্যাকের চেয়ে এগিয়ে ছিল এবং কোনও উপাদান সরাসরি সরানোর অনুমতি দেয়।

এটি কেবল আমার অনুমান, তবে ফায়ারফক্স যেভাবে রেফারেন্সটি পরিচালনা করেছিল তা নিয়ে কোনও সমস্যা হওয়ার কারণে পিতা-মাতার মাধ্যমে আপনার অবশ্যই একটি শিশুকে অপসারণ করতে হবে বলে আমি বিশ্বাস করি।

আপনি যদি সরাসরি কোনও জিনিসকে হরি-কারি করার জন্য কল করেন তবে এটি মারা যাওয়ার সাথে সাথেই আপনি এখনও তার উল্লেখটি ধরে রেখেছেন holding এটিতে বেশ কয়েকটি কদর্য বাগ তৈরি করার সম্ভাবনা রয়েছে ... যেমন এটি অপসারণ করতে ব্যর্থ হওয়া, মুছে ফেলা তবে বৈধ বলে মনে হচ্ছে এমন উল্লেখগুলি রেখে দেওয়া, বা কেবল একটি স্মৃতি ফাঁস।

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

এটি একটি সহজে সমাধানযোগ্য ত্রুটি হওয়া উচিত, তবে ওয়েব প্রোগ্রামিংয়ের অন্যান্য অনেক বিষয়ের মতোই মুক্তিটি সম্ভবত তাড়াতাড়ি চালানো হয়েছিল ... এবং পরবর্তী সংস্করণটি যখন আসছিল, তখন পর্যাপ্ত লোকেরা এটি ব্যবহার করে যে এটি পরিবর্তিত হতে পারে কোড একটি গুচ্ছ ভঙ্গ।

আবার এগুলি সবই আমার অনুমানের কাজ।

যাইহোক, আমি সেই দিনটির অপেক্ষায় রয়েছি যখন ওয়েব প্রোগ্রামিং অবশেষে পুরো বসন্তের পরিষ্কার হয়, এই সমস্ত অদ্ভুত ছোট্ট আইডিয়োসিঞ্চিগুলি পরিষ্কার হয়ে যায় এবং প্রত্যেকে একই নিয়মে খেলতে শুরু করে।

সম্ভবত আমার রোবট চাকর পরের দিন মজুরির জন্য আমাকে মামলা করে।


10
আমি সন্দেহ করি যে এর জন্য ফায়ারফক্স দায়ী। removeChildএটি ডিওএম স্তর 1 Nodeইন্টারফেসের একটি পদ্ধতি ।
ফেলিক্স ক্লিং

0

আমি যা বুঝি সেগুলি থেকে সরাসরি কোনও নোড সরানো ফায়ারফক্সে কাজ করে না, কেবল ইন্টারনেট এক্সপ্লোরার। সুতরাং, ফায়ারফক্স সমর্থন করতে, আপনার সন্তানের অপসারণ করতে আপনার পিতামাতার কাছে যেতে হবে।

রেফ: http://chiragrdarji.wordpress.com/2007/03/16/removedelete-element-from-page- using-javascript-working-in-firefoxieopera/


6
এটি সত্যই আমার প্রশ্নের উত্তর দেয় না এবং আপনি যে পৃষ্ঠায় লিঙ্ক করেছেন সেটি আমার চেয়ে খারাপ সমাধান সরবরাহ করে।
জাজ

0
// http://javascript.crockford.com/memory/leak.html
// cleans dom element to prevent memory leaks
function domPurge(d) {
    var a = d.attributes, i, l, n;
    if (a) {
        for (i = a.length - 1; i >= 0; i -= 1) {
            n = a[i].name;
            if (typeof d[n] === 'function') {
                d[n] = null;
            }
        }
    }
    a = d.childNodes;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            domPurge(d.childNodes[i]);
       }
    }
}

function domRemove(id) {
    var elem = document.getElementById(id);
    domPurge(elem);
    return elem.parentNode.removeChild(elem);
}

-3

স্ক্রিপ্ট ত্রুটি ছাড়াই কোনও উপাদান সরিয়ে ফেলার এটি সেরা কাজ:

function Remove(EId)
{
    return(EObj=document.getElementById(EId))?EObj.parentNode.removeChild(EObj):false;
}

নোট করুন EObj=document.getElementById(EId)

এটি এক সমান চিহ্ন নয় ==

যদি উপাদান EIdবিদ্যমান থাকে তবে ফাংশন এটি সরিয়ে দেয়, অন্যথায় এটি মিথ্যা ফিরিয়ে দেয়, না error


4
একটি বৈশ্বিক পরিবর্তনশীল তৈরি করে।
bjb568

1
এটি অন্য উত্তরের একটি খারাপ সংস্করণ , তবে 2 বছর দেরী।
এমিল বার্গারন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.