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.