link - jquery w3schools




কিভাবে তার টেক্সট দ্বারা একটি বিকল্প নির্বাচন করুন? (11)

আমি <select> একটি বিকল্প আছে যার একটি টেক্সট একটি নির্দিষ্ট মান সমান কিনা তা পরীক্ষা করতে হবে।

উদাহরণস্বরূপ, যদি একটি <option value="123">abc</option> , আমি "abc" সন্ধান করব।

এটা করতে একটি নির্বাচক আছে?

আমি $('#select option[value="123"]'); অনুরূপ কিছু খুঁজছেন $('#select option[value="123"]'); কিন্তু টেক্সট জন্য।


আপনি নির্দিষ্ট পাঠ্য ধারণকারী উপাদান নির্বাচন করতে :contains() নির্বাচক নির্বাচন করতে পারেন।
উদাহরণ স্বরূপ:

$('#mySelect option:contains(abc)')

প্রদত্ত <select> উপাদানটিতে এমন একটি বিকল্প রয়েছে কিনা তা পরীক্ষা করার জন্য, .has() পদ্ধতিটি ব্যবহার করুন:

if (mySelect.has('option:contains(abc)').length)

সমস্ত <select> গুলি খুঁজে বের করার জন্য যেমন একটি বিকল্প রয়েছে, ব্যবহার করুন :has() নির্বাচক :

$('select:has(option:contains(abc))')

আপনি বিকল্পগুলির মধ্য দিয়ে পুনরাবৃত্তি করুন, অথবা একই পাঠ্যটি বিকল্পটির অন্য একটি বৈশিষ্ট্যের ভিতরে রাখুন এবং তার সাথে নির্বাচন করুন।


আমি ফায়ারফক্স এবং IE উভয় কাজ করার জন্য একটি পেয়েছিলাম পর্যন্ত আমি এই জিনিস কিছু চেষ্টা। এই আমি সঙ্গে এসেছিলেন কি।

$("#my-Select").val($("#my-Select" + " option").filter(function() { return this.text == myText }).val());

একটি আরও পঠনযোগ্য fasion এটি লেখার অন্য উপায়:

var valofText = $("#my-Select" + " option").filter(function() {
    return this.text == myText
}).val();
$(ElementID).val(valofText);

pseudocode:

$("#my-Select").val( getValOfText( myText ) );

এই আমার জন্য কাজ

$('#mySelect option:contains(' + value + ')').attr('selected', 'selected');

এটি jQuery 1.6 এ কাজ করবে (খোলার বন্ধনী আগে নোট কলোন), তবে নতুন রিলিজগুলিতে ব্যর্থ হয় (যে সময়ে 1.10)।

$('#mySelect option:[text=abc]")

এটি আমার জন্য কাজ করে:

var result = $('#SubjectID option')
            .filter(function () 
             { return $(this).html() == "English"; }).val();

result পরিবর্তনশীল মেলা লেখা মান সূচী ফিরে আসবে। এখন আমি এটি এর সূচী ব্যবহার করে সেট করা হবে:

$('#SubjectID').val(result);

এটি সাহায্য করতে পারে:

$('#test').find('option[text="B"]').val();

ডেমো খামখেয়াল

এটি আপনাকে পাঠ্য B দিয়ে বিকল্প দেবে এবং এমন কোনও পাঠ্য নেই যা B রয়েছে। আশাকরি এটা সাহায্য করবে

JQuery এর সাম্প্রতিক সংস্করণগুলির জন্য উপরে কাজ করে না। নীচের Quandary দ্বারা মন্তব্য হিসাবে, এই jQuery 1.9.1 জন্য কাজ করে:

$('#test option').filter(function () { return $(this).html() == "B"; }).val();

হালকা আপডেট


ড্রপডাউনস্ট্রিলে নির্বাচিত পাঠ্যের জন্য এটি সর্বোত্তম পদ্ধতি।

$("#dropdownid option:contains(your selected text)").attr('selected', true);

পূর্ববর্তী পরামর্শগুলির মধ্যে কেউ আমার জন্য jQuery 1.7.2 তে কাজ করেনি কারণ আমি একটি তালিকাবাক্সের মানের উপর ভিত্তি করে তালিকাটির নির্বাচিত সূচী সেট করার চেষ্টা করছি এবং কিছু পাঠ্য মান একাধিক বিকল্পগুলিতে রয়েছে। আমি নিম্নলিখিত ব্যবহার করে শেষ পর্যন্ত:

$('#mySelect option:contains(' + value + ')').each(function(){
    if ($(this).text() == value) {
        $(this).attr('selected', 'selected');
        return false;
    }
    return true;
});

এই উত্তর বর্ণিত হিসাবে, আপনি সহজেই hasText জন্য আপনার নিজস্ব নির্বাচক তৈরি করতে পারেন। এটি আপনাকে $('#test').find('option:hastText("B")').val(); দিয়ে বিকল্পটি খুঁজে পেতে দেয় $('#test').find('option:hastText("B")').val();

আমি যোগ করেছি hasText পদ্ধতি এখানে:

 if( ! $.expr[':']['hasText'] ) {
     $.expr[':']['hasText'] = function( node, index, props ) {
       var retVal = false;
       // Verify single text child node with matching text
       if( node.nodeType == 1 && node.childNodes.length == 1 ) {
         var childNode = node.childNodes[0];
         retVal = childNode.nodeType == 3 && childNode.nodeValue === props[3];
       }
       return retVal;
     };
  }

নিচে jquery সংস্করণ 1.10.2 জন্য আমার জন্য কাজ

  var selectedText="YourMatchText";
    $('#YourDropdownId option').map(function () {
       if ($(this).text() == selectedText) return this;
      }).attr('selected', 'selected');
    });





jquery