.পেন্ড (), প্রিপেন্ড (), পরে () এবং পূর্বে ()


205

আমি কোডিংয়ে বেশ দক্ষ, তবে এখন এবং পরে আমি কোডটি পাই যা মূলত একই জিনিসটি মনে হয়। এখানে আমার মূল প্রশ্নটি হল আপনি কেন .append()তখন .after()বা উপাসের আয়াত ব্যবহার করবেন ?

আমি দেখছিলাম এবং দুজনের মধ্যে পার্থক্যগুলির কখন এবং কখন তাদের ব্যবহার করব এবং কখন না করব তার স্পষ্ট সংজ্ঞা পেয়েছি বলে মনে হচ্ছে না।

একজনের অপরটির কী কী সুবিধা এবং আমি কেন অন্যটির পরিবর্তে অন্যটি ব্যবহার করব ?? কেউ আমাকে এই ব্যাখ্যা করুন পারি?

var txt = $('#' + id + ' span:first').html();
$('#' + id + ' a.append').live('click', function (e) {
    e.preventDefault();
    $('#' + id + ' .innerDiv').append(txt);
});
$('#' + id + ' a.prepend').live('click', function (e) {
    e.preventDefault();
    $('#' + id + ' .innerDiv').prepend(txt);
});
$('#' + id + ' a.after').live('click', function (e) {
    e.preventDefault();
    $('#' + id + ' .innerDiv').after(txt);
});
$('#' + id + ' a.before').live('click', function (e) {
    e.preventDefault();
    $('#' + id + ' .innerDiv').before(txt);
});

2
আমি কখনই appendকোন বাগ ব্যবহার করি না (অর্থাত্)? আমি appendToযেগুলি শব্দার্থগতভাবে সঠিক বলে মনে করি বিশেষত যেহেতু after(চেইন চেইন চেইন) রয়েছে - এনবি: afterএর পরে নেই
মিকাকুন

আপনি যা জানতে চান তা মত শব্দগুলি একই ফলাফলটি অর্জনের পরে অ্যাপেন্ড বনাম কেন বেছে নেবে। বলুন আপনার কাছে <ডি ক্লাস = 'এ'> <পি ক্লাস = 'বি'> </p> </div> রয়েছে। তারপরে $ ('। ক') app যথা: <div class = 'a'> <p class = 'b'> </p> 'হ্যালো' </div>। সেক্ষেত্রে বিষয়টি কিছু যায় আসে না। ফলস্বরূপ এইচটিএমএল একই, সুতরাং সংযোজন চয়ন করুন বা আপনার কোডটিতে কোন নির্বাচক সবচেয়ে বেশি সুবিধাজনক তা নির্ভর করে choose
tgoneil

উত্তর:


446

দেখা:


.append()রাখে তথ্য একটি উপাদান ভিতরে last indexএবং
.prepend()রাখে prepending ELEM এfirst index


অনুমান করা:

<div class='a'> //<---you want div c to append in this
  <div class='b'>b</div>
</div>

.append()মৃত্যুদন্ড কার্যকর করা হলে এটি এর মতো দেখাবে:

$('.a').append($('.c'));

মৃত্যুদন্ড কার্যকর করার পরে:

<div class='a'> //<---you want div c to append in this
  <div class='b'>b</div>
  <div class='c'>c</div>
</div>

ফাঁসিতে কার্যকর .append () কার্যকর করুন।


.prepend()মৃত্যুদন্ড কার্যকর করা হলে এটি এর মতো দেখাবে:

$('.a').prepend($('.c'));

মৃত্যুদন্ড কার্যকর করার পরে:

<div class='a'> //<---you want div c to append in this
  <div class='c'>c</div>
  <div class='b'>b</div>
</div>

ফাঁসিতে কার্যকর।


.after()উপাদানটিকে
.before()উপাদানটির আগে উপাদান রাখার পরে উপাদানটি রাখে


পরে ব্যবহার:

$('.a').after($('.c'));

মৃত্যুদন্ড কার্যকর করার পরে:

<div class='a'>
  <div class='b'>b</div>
</div>
<div class='c'>c</div> //<----this will be placed here

কার্যকর পরে।


আগে ব্যবহার:

$('.a').before($('.c'));

মৃত্যুদন্ড কার্যকর করার পরে:

<div class='c'>c</div> //<----this will be placed here
<div class='a'>
  <div class='b'>b</div>
</div>

কার্যকর।



1
@ জোরেড কার্যকরভাবে কিছু জেএস ফিডাল লিঙ্কগুলির সাথে আপনার মন্তব্য অনুসারে উত্তর আপডেট করেছে।
জয়

1
দুর্দান্ত ব্যাখ্যা, তবে আমি যদি কোনও বাহ্যিক এইচটিএমএল ভিউতে লোড করতে চাই তবে কী হবে? এমভিসি $("#viewPlaceHolder").append("/clients/RelationDropdown", {selected: selected });
তেমন

4
@ জিরোইন .append()এটি সেভাবে লোড করবে না। আপনি ব্যবহার করতে হবে .load(url, params)
জয়

1
নিস! আমি কি '$ (উপাদান)। অ্যাপেন্ড (সামগ্রী)' এবং '$ (সামগ্রী)। অ্যাপেন্ডটো (লক্ষ্য)', এবং এর মতো পার্থক্য সম্পর্কে জিজ্ঞাসা করতে পারি? (আমি
অ্যাপোস্টোলোস

135

এই ছবিটি নীচে প্রদর্শিত একটি স্পষ্ট বুঝতে দেয় এবং মধ্যে সঠিক পার্থক্য দেখায় .append(), .prepend(), .after()এবং.before()

jQuery ইনফোগ্রাফিক

আপনি চিত্র থেকে দেখতে পাচ্ছেন .append()এবং .prepend()নতুন উপাদানগুলিকে শিশু উপাদান হিসাবে যুক্ত করেছেন (বাদামী বর্ণের)

আর .after().before()যেমন নতুন উপাদান যোগ করে সহোদর উপাদানের (কালো রং) টার্গেটের।

আরও ভাল বোঝার জন্য এখানে একটি ডেমো রয়েছে


সম্পাদনা: এই ফাংশনগুলির উল্টানো সংস্করণ:

jQuery সন্নিবেশ ইনফোগ্রাফিক, ফাংশনগুলির উল্লিখিত সংস্করণ

এই কোড ব্যবহার করে :

var $target = $('.target');

$target.append('<div class="child">1. append</div>');
$target.prepend('<div class="child">2. prepend</div>');
$target.before('<div class="sibling">3. before</div>');
$target.after('<div class="sibling">4. after</div>');

$('<div class="child flipped">or appendTo</div>').appendTo($target);
$('<div class="child flipped">or prependTo</div>').prependTo($target);
$('<div class="sibling flipped">or insertBefore</div>').insertBefore($target);
$('<div class="sibling flipped">or insertAfter</div>').insertAfter($target);

এই লক্ষ্য:

<div class="target">
    This is the target div to which new elements are associated using jQuery
</div>

সুতরাং যদিও এই ফাংশনগুলি প্যারামিটার ক্রমটি ফ্লিপ করে, প্রতিটি একই উপাদানকে নীড় করে তোলে:

var $div = $('<div>').append($('<img>'));
var $img = $('<img>').appendTo($('<div>'))

... তবে তারা ভিন্ন উপাদান ফেরত দেয়। পদ্ধতি শৃঙ্খলার জন্য এটি গুরুত্বপূর্ণ ।


2
খুব সহজেই বোধগম্য ছবি। :)
আবদুল হামেদ

সম্মত! যদি আমি জিজ্ঞাসা করি তবে ছবিতে অ্যাপেন্ডটো এবং প্রিপেন্ডটো সম্পর্কে কী হবে? আপডেট করুন.
Brst dev7

আমি আপনার ইনফোগ্রাফিক উল্লেখ করছি। আশা করি আপনি উল্লিখিত ফাংশনগুলির সংযোজনটি পছন্দ করবেন।
বব স্টেইন

37

append()& prepend()একটি উপাদান ভিতরে কন্টেন্ট ঢোকাতে জন্য (বিষয়বস্তু তার সন্তান উপার্জন হয় না) যখন after()& before()একটি উপাদান বাহিরে বিষয়বস্তু সন্নিবেশ (বিষয়বস্তু তার সহোদর উপার্জন)।


19

সেরা উপায় ডকুমেন্টেশন যাচ্ছে।

.append() বনাম .after()

  • append(): ম্যাচিং উপাদানগুলির সেটে প্রতিটি উপাদানটির শেষে , প্যারামিটার দ্বারা নির্দিষ্ট করা সামগ্রী sertোকান।
  • after(): ম্যাচিং উপাদানগুলির সেটে প্রতিটি উপাদানগুলির পরে প্যারামিটার দ্বারা নির্দিষ্ট করা সামগ্রী .োকান।

.prepend() বনাম .before()

  • prepend(): শুরুতে প্যারামিটার দ্বারা নির্দিষ্ট করা সামগ্রী .োকান ম্যাচিং উপাদানগুলির সেটে প্রতিটি উপাদানটির sertোকান।
  • before(): ম্যাচিং উপাদানগুলির সেটের প্রতিটি উপাদানের আগে প্যারামিটার দ্বারা নির্দিষ্ট করা সামগ্রী .োকান।

সুতরাং, সংযোজন এবং প্রিপেন্ড হ'ল অবজেক্টটির শিশুকে বোঝায় যেখানে এর আগে এবং আগে অবজেক্টটির ভাইবালিকে বোঝায়।


9

তার মাঝে একটি মৌলিক পার্থক্য নেই .append()এবং .after()এবং .prepend()এবং .before()

.append()পরামিতি উপাদান যোগ করে খুব শেষে নির্বাচক উপাদান এর ট্যাগ ভিতরে যেহেতু .after()পরামিতি উপাদান যোগ করে উপাদান এর ট্যাগের পরে

তদ্বিপরীত এর জন্য .prepend()এবং .before()

বেহালা


5

তাদের প্রত্যেকের জন্য কোনও বাড়তি সুবিধা নেই। এটি সম্পূর্ণ আপনার দৃশ্যের উপর নির্ভর করে। নীচের কোডটি তাদের পার্থক্য দেখায়।

    Before inserts your html here
<div id="mainTabsDiv">
    Prepend inserts your html here
    <div id="homeTabDiv">
        <span>
            Home
        </span>
    </div>
    <div id="aboutUsTabDiv">
        <span>
            About Us
        </span>
    </div>
    <div id="contactUsTabDiv">
        <span>
            Contact Us
        </span>
    </div>
    Append inserts your html here
</div>
After inserts your html here

5
<div></div>    
// <-- $(".root").before("<div></div>");
<div class="root">
  // <-- $(".root").prepend("<div></div>");
  <div></div>
  // <-- $(".root").append("<div></div>");
</div>
// <-- $(".root").after("<div></div>");
<div></div>    

3

ডম (HTML টি পৃষ্ঠা) ডানদিকে একটি গাছ হিসাবে ডান কল্পনা করুন । এইচটিএমএল উপাদানগুলি এই গাছের নোড।

append()একটি নতুন নোড যোগ childনোড আপনি এটি নামক।

Example:$("#mydiv").append("<p>Hello there</p>") 

creates a child node <p> to <div>

after()একটি সহোদর হিসাবে অথবা একই স্তরের বা নোড আপনি এটি নামক পিতা বা মাতা সন্তানের একটি নতুন নোড যোগ করা হয়েছে।


3

আপনার মূল প্রশ্নের চেষ্টা এবং উত্তর দেওয়ার জন্য :

আপনি কেন পরে।

আপনি যখন ডিওএমকে জিকিউরির সাথে চালিত করছেন আপনি যে পদ্ধতিগুলি ব্যবহার করেন তা আপনার ফলাফলের উপর নির্ভর করে এবং ঘন ঘন ব্যবহারের বিষয়বস্তু প্রতিস্থাপন করা হয়।

সামগ্রীটি প্রতিস্থাপনের সময় আপনি সামগ্রীতে চান .remove()এবং এটিকে নতুন সামগ্রী দিয়ে প্রতিস্থাপন করুন। আপনি যদি .remove()বিদ্যমান ট্যাগটি ব্যবহার করেন এবং ব্যবহার করার চেষ্টা করেন তবে .append()তা কাজ করবে না কারণ ট্যাগটি নিজেই সরানো হয়েছে, আপনি যদি ব্যবহার করেন .after()তবে নতুন সামগ্রীটি (এখন সরানো) ট্যাগটির বাইরে 'যোগ করা' হয় এবং পূর্ববর্তী দ্বারা প্রভাবিত হয় না .remove()

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