jQuery একটি ডিভ মধ্যে শুধুমাত্র উপাদান সিরিয়ালাইজ করতে


111

আমি একই প্রভাব পেতে চাই jQuery.serialize()তবে আমি কেবলমাত্র প্রদত্ত সন্তানের এলেন্টগুলি ফিরিয়ে দিতে চাই div।

নমুনা ফলাফল:

single=Single2&multiple=Multiple&radio=radio1

উত্তর:


277

সমস্যা নেই. শুধু নিম্নলিখিত ব্যবহার করুন। এটি ঠিক কোনও ফর্মকে সিরিয়ালকরণ করার মতো আচরণ করবে তবে পরিবর্তে একটি ডিভের সামগ্রী ব্যবহার করবে।

$('#divId :input').serialize();

একটি বিক্ষোভের জন্য https://jsbin.com/xabureladi/1 দেখুন ( https://jsbin.com/xabureladi/1 / কোডের জন্য সম্পাদনা)


58
করবে না $("#divId").find("select, textarea, input").serialize();ভাল পারফরম্যান্স yeild? আমি কল্পনা করি যে ডিভের অনেকগুলি সারি / কলাম সহ একটি টেবিলের মতো প্রচুর উপাদান থাকলে ধীরে ধীরে আসতে পারে।
— ডেভিড মারডোক

3
অন্যান্য উত্তরে তালিকাভুক্ত হিসাবে, $ ('# DivId: ইনপুট') serial সিরিয়ালাইজ () আরও দক্ষ হবে।
— জেফাউন্টে

2
@ ইটারঅফকর্পিসগুলি যা পরীক্ষার খুব সঠিক উপায় নয়। আপনি যদি বিবৃতিগুলির ক্রম স্যুইচ করেন তবে আপনি লক্ষ্য করবেন যে আসলেই কোনও পার্থক্য নেই: jsfiddle.net/QAKjN/10 । নির্বাচকদের চেয়ে খেলায় আরও কিছু রয়েছে
— রোনদেল

2
স্পষ্টতই এটি কেবল ইনপুটগুলিকেও সিরিয়ালাইজ করে, তাই ডেভিড মুরডোকস মন্তব্যটি করার সঠিক উপায় হবে।
— সুপারফোনিক

2
jQuery: "কারণ: ইনপুট একটি jQuery এক্সটেনশন এবং CSS স্পেসিফিকেশনের অংশ নয়, কোয়েরি ব্যবহার করে: ইনপুটটি নেটিভ ডিওএম ক্যোয়ারীস্লেক্টরআল () পদ্ধতি দ্বারা সরবরাহিত পারফরম্যান্স বৃদ্ধির সুবিধা নিতে পারে না" " $ ('[নাম]') ব্যবহার করা আরও ভাল হবে: document.querySelectorAll ('[নাম]');
— আবদুল্লাহ আইডন

22

আপনি jQuery যে আইটেমগুলিতে নজর রাখবেন সেগুলিকে সীমাবদ্ধ রাখলে আপনি আপনার কোডের গতি উন্নত করতে পারেন।

নির্বাচকটি ব্যবহার করুন : এটি অর্জনের জন্য * এর পরিবর্তে ইনপুট ।

$('#divId :input').serialize()

এটি আপনার কোডটি দ্রুত তৈরি করবে কারণ আইটেমের তালিকা সংক্ষিপ্ত।


15

serializeক এর মধ্যে সমস্ত ফর্ম-উপাদান div।

আপনি #target-div-idনিজের formব্যবহারের ভিতরে ডিভকে লক্ষ্য করে এটি করতে পারেন :

$('#target-div-id').find('select, textarea, input').serialize();

5

আমি বর্তমানে যে ফাংশনটি ব্যবহার করি:

/**
 * Serializes form or any other element with jQuery.serialize
 * @param el
 */
serialize: function(el) {
    var serialized = $(el).serialize();
    if (!serialized) // not a form
        serialized = $(el).
          find('input[name],select[name],textarea[name]').serialize();
    return serialized;
}

2
এছাড়াও। ফাইন্ড ('[নাম]')। সিরিয়ালাইজ (); 'সিরিয়ালাইজযোগ্য' উপাদানগুলিকে ফিল্টার করতে ব্যবহার করা যেতে পারে।
— আবদুল্লাহ আইডন

3

এটি ব্যবহার করে দেখুন:

$ ( '# DivId')। এটি ( 'ইনপুট')। ধারাবাহিকভাবে ()


6
এটি ডিভের মধ্যে নির্বাচিত উপাদান এবং পাঠ্য সিরিয়ালিয়াল করবে না
— জেফ ওয়াকার কোড রেঞ্জার

এটি নির্বাচন করুন এবং পাঠ্য সমস্যাটিকে সংশোধন করে: <কোড> $ ("# ডিভিডি") find সন্ধান করুন ("নির্বাচন করুন, পাঠ্যক্রম, ইনপুট") serial <// কোড>
— ট্রয়স্টেভেন

3

আমার সমাধান সম্পর্কে কি:

function serializeDiv( $div, serialize_method )
{
    // Accepts 'serialize', 'serializeArray'; Implicit 'serialize'
    serialize_method = serialize_method || 'serialize';

    // Unique selector for wrapper forms
    var inner_wrapper_class = 'any_unique_class_for_wrapped_content';

    // Wrap content with a form
    $div.wrapInner( "<form class='"+inner_wrapper_class+"'></form>" );

    // Serialize inputs
    var result = $('.'+inner_wrapper_class, $div)[serialize_method]();

    // Eliminate newly created form
    $('.script_wrap_inner_div_form', $div).contents().unwrap();

    // Return result
    return result;
}

/* USE: */

// For: $('#div').serialize()
serializeDiv($('#div')); /* or */ serializeDiv($('#div'), 'serialize');

// For: $('#div').serializeArray()
serializeDiv($('#div'), 'serializeArray');


0

যদি এই উপাদানগুলির একটি সাধারণ শ্রেণীর নাম থাকে তবে কেউ এটি ব্যবহার করতে পারে:

$('#your_div .your_classname').serialize()

এইভাবে আপনি বাটনগুলির নির্বাচন এড়াতে পারবেন, যা jQuery নির্বাচক ব্যবহার করে নির্বাচন করা হবে :input। যদিও এটি ব্যবহার করেও এড়ানো যায়$('#your_div :input:not(:button)').serialize();


0
$('#divId > input, #divId > select, #divId > textarea').serialize();

1
কমা ব্যবহার করা হয়, তাহলে আপনি নির্দিষ্ট করতে হবে IDপ্রতিটি নির্বাচক, মত: $('#divId > input, #divId > select, #divId > textarea'); এছাড়াও, >প্রতীকটি এটি সরাসরি বাচ্চাদের উপাদানগুলিকে বোঝায় ... এই দৃশ্যে খুব অস্বাভাবিক বা কমপক্ষে, খুব সীমাবদ্ধ।
— gmo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.