আপনি কীভাবে jQuery এর একটি নির্বাচন উপাদান একটি নির্দিষ্ট বিকল্প নির্বাচন করবেন?


716

আপনি যদি সূচক, মান বা পাঠ্য জানেন। এছাড়াও যদি আপনার সরাসরি রেফারেন্সের জন্য কোনও আইডি না থাকে।

এটি , এটি এবং এটি সমস্ত সহায়ক উত্তর।

উদাহরণস্বরূপ

<div class="selDiv">
  <select class="opts">
    <option selected value="DEFAULT">Default</option>
    <option value="SEL1">Selection 1</option>
    <option value="SEL2">Selection 2</option>
  </select>
</div>

46
$("#my_select").val("the_new_value").change();... ... তাই
ডিএসডিএসডিএসডিএসডি

উত্তর:


1204

মান অনুসারে মধ্যবর্তী বিকল্প-উপাদানটি পেতে একটি নির্বাচক

$('.selDiv option[value="SEL1"]')

একটি সূচকের জন্য:

$('.selDiv option:eq(1)')

একটি পরিচিত পাঠ্যের জন্য:

$('.selDiv option:contains("Selection 1")')

সম্পাদনা : ওপিকে উপরে মন্তব্য হিসাবে ড্রপডাউন নির্বাচিত আইটেমটি পরিবর্তন করার পরে হতে পারে। সংস্করণ 1.6 এবং উচ্চতর প্রপ () পদ্ধতিটি সুপারিশ করা হয়:

$('.selDiv option:eq(1)').prop('selected', true)

পুরানো সংস্করণগুলিতে:

$('.selDiv option:eq(1)').attr('selected', 'selected')

EDIT2 : রায়ান এর মন্তব্যের পরে। "নির্বাচন 10" এ একটি ম্যাচ অযাচিত হতে পারে। পুরো পাঠ্যের সাথে মেলে এমন কোনও নির্বাচক আমি পাইনি , তবে একটি ফিল্টার কাজ করে:

 $('.selDiv option')
    .filter(function(i, e) { return $(e).text() == "Selection 1"})

সম্পাদনা 3 : সতর্কতা ব্যবহার করুন $(e).text()কারণ এটি তুলনাকে ব্যর্থ করে তুলতে একটি নিউলাইন থাকতে পারে। বিকল্পগুলি স্পষ্টভাবে বন্ধ হয়ে গেলে (কোনও </option>ট্যাগ নেই) এমনটি ঘটে :

<select ...>
<option value="1">Selection 1
<option value="2">Selection 2
   :
</select>

আপনি যদি কেবল e.textকোনও অতিরিক্ত শ্বেত স্পেস ব্যবহার করেন তবে পেছনের নিউলাইনটি অপসারণ করা হবে, তুলনাটিকে আরও শক্তিশালী করে তুলবে।


8
: ধারণাগুলি দুর্দান্ত নয় কারণ এটি পাঠ্যের টুকরাগুলির সাথে মিলবে; সমস্যাযুক্ত যদি আপনার বিকল্প পাঠ্য কোনও অন্য বিকল্প পাঠ্যের একটি স্ট্রিং থাকে।
রায়ান 21

26
এটি খুব বেশি কাজ করে $ ('# আইডি বিকল্প [মান = "0"]')। অ্যাটর ('নির্বাচিত', 'নির্বাচিত');
ডিভসি

@ গ্রেস্টভিট কীভাবে প্রথম বিকল্পের রঙ পরিবর্তন করবেন তা যদি এটি নির্বাচিত হয় বা না হয় যখন এটি ক্লাস বলে মাই ক্লাস বলে। ধন্যবাদ
যাকের

@ ব্যবহারকারী আমি বুঝতে পারি না। এটি একটি নতুন প্রশ্ন পোস্ট করতে পারেন? অথবা এটি $ ('। বিক্রয়ডা। মাই ক্লাস')। সিএসএস ('রঙ', 'লাল')?
গ্রেস্টভিট

6
আমি আপনাকে যুক্ত করতে চাই যে অবশ্যই আপনাকে অবশ্যই প্রপ ব্যবহার করা উচিত এবং অ্যাটর করা উচিত নয়। আমি প্রায় কোনও অ্যাপ্লিকেশন ডিবাগ করার চেষ্টা করে বাদাম গিয়েছিলাম এবং এট্রিক থেকে প্রপ এ পরিবর্তন করেছিলাম।
ব্যবহারকারী 609926

125

উপরের যে কোনও পদ্ধতিতে আমার প্রয়োজনীয় সমাধানটি সরবরাহ করা যায় নি তাই আমি বুঝতে পেরেছিলাম আমার জন্য যা কাজ করা হয়েছে তা সরবরাহ করব।

$('#element option[value="no"]').attr("selected", "selected");

10
JQuery 1.6 হিসাবে নোট করুন এটি ব্যবহার করা উচিত propএবং না attr
কোডিং হয়ে গেছে

@ গনকোডিং ব্যবহার .attrকরা সঠিক। "নির্বাচিত" <বিকল্প> একটি বৈশিষ্ট্য w3.org/TR/html5/forms.html#attr-option-selected
কার্লোস Llongo

3
@ কার্লোস লোলংগো: এটি অপ্রাসঙ্গিক। JQuery সুপারিশটি সর্বদা propপছন্দ হিসাবে ব্যবহার করা হয় attr। এটি ডাব্লু 3.org এর প্রতিটি সম্পত্তি অনুসন্ধান করে দেখার জন্য এটি সংরক্ষণ করে যে এটি কেবল কোনও বৈশিষ্ট্য, বা ব্যাকিং ক্রিয়াকলাপের সাথে প্রয়োগ করা হয়েছে।
কোডিং হয়ে গেছে

81

আপনি কেবল val()পদ্ধতিটি ব্যবহার করতে পারেন :

$('select').val('the_value');

20
এটি ভুল কারণ আপনি সমস্ত নির্বাচনের উপাদানগুলির মান নির্ধারণ করছেন the_value। .ভাল সিলেক্টর / ফিল্টার ফাংশন নয়! এটি একটি সম্পত্তি অ্যাক্সেসর এবং এটি পাস করে যা মান সেট করে। আমি আমার উপভোটটি ফিরিয়ে নেওয়ার চেষ্টা করেছি তবে পরীক্ষায় এটি পুনরায় আকার দেওয়ার পরে অনেক দেরি হয়েছিল।
অ্যারোনএলএস

4
উত্তম আপনি কি কার্যকর উত্তর হিসাবে 10 টি ভোট পেয়েছেন? ভাল () একটি গেটর এবং একটি সেটার। যদি আপনি কেবল ভাল () ব্যবহার করেন তবে আপনি মানটি পাবেন। আপনি যদি ভাল ('the_value') এর মতো কিছু পাস করেন তবে আপনি এটিকে 'the_value' এ সেট করছেন
গুই

11
দয়া করে @ অ্যারোনলএস এবং @ গিলের্মিজিক, দস্তাবেজগুলি পড়ুন (শেষ উদাহরণ)। এটি নির্বাচন, চেকবক্স এবং রেডিও বোতামগুলির জন্য নির্বাচক এবং পাঠ্য ইনপুট এবং টেক্সারিয়াসের জন্য একটি মান সেটার হিসাবে কাজ করে।
লিয়ান্ড্রো আরডিসোন

9
আপনি দস্তাবেজটি ভুলভাবে পড়েছেন। চেকবক্স, রেডিও এবং লিস্টবক্সগুলির জন্য কমান্ড সেই আইটেমগুলির জন্য "নির্বাচিত" বৈশিষ্ট্য নির্ধারণ করে। শেষ উদাহরণটি দেখায় যে কীভাবে পাস (ভাল "" চেকবক্স 1 ") এটি নির্বাচিত হওয়ার কারণ করে। এটি সিএসএস / জকিউয়ের নির্বাচকের মাধ্যমে বিষয়গুলি পাওয়ার ক্ষেত্রে "নির্বাচক" এর মতো নয়। আমি আপনার কোড পরীক্ষা করেছি, এটি নীচের অংশে কাজ করে না।
অ্যারোনএলএস

26
+1: না, এটি কোনও জকিউরি নির্বাচক নয়, তবে আমি মনে করি এই প্রশ্নটি অনুসন্ধান করা বেশিরভাগ লোকেরা আমার মতো, এবং কেবলমাত্র বর্তমানে নির্বাচিত বিকল্পটি পরিবর্তন করতে চান; প্রকৃত নির্বাচকের সাথে আসা কেবল এটি করার উপায়। এবং এটি অবশ্যই আমি যে উত্তরগুলি দেখেছি তার চেয়ে ভাল better
কেডিগ্রিগরি

57

মান অনুসারে, jQuery 1.7 দিয়ে আমার জন্য যা কাজ করেছিল তা নীচের কোড ছিল, এটি চেষ্টা করুন:

$('#id option[value=theOptionValue]').prop('selected', 'selected').change();

5
আমি নিশ্চিত নই যে আপনার। পরিবর্তন () পদ্ধতিটি দরকার।
ফিলিপ সেন 4

6
.change()প্রয়োজন ছিল। আমার একটি উদাহরণ ছিল যেখানে আমি একটি নির্বাচনের উপর ভিত্তি করে থাম্বনেইলগুলি স্যুইচ করছি। আমি যখন একটি কাস্টম থিম আপলোড করেছি তখন বিকল্পগুলির তালিকা থেকে "কাস্টম থিম" নির্বাচন করার কথা ছিল। .prop()কল কাজ করেন, কিন্তু ছাড়া .change(), আমার নির্বাচন ডানদিকে থাম্বনেল চিত্র আপডেট না।
ভলমাইক

2
। بدل () সেরা পরামর্শ ছিল। +1
Ja8zyjits

1
দ্রষ্টব্য: একটি বুলিয়ান propমান একই আউটপুট উত্পন্ন করে। উদাহরণস্বরূপ.prop('selected', true)
কোডিং হয়ে গেছে

নির্ভর করে, কিছু ব্রাউজার - সম্ভবত পুরানো ব্রাউজারগুলি - 'নির্বাচিত' স্ট্রিংয়ের প্রয়োজন। আমি মনে করি তাদের বেশিরভাগই টেক্সট স্ট্রিং সমর্থন করে।
এমপ্লেটো

16

এটি করার বিভিন্ন উপায় রয়েছে তবে শীর্ষস্থানীয় উত্তর এবং বিতর্ককে বোঝার মধ্যে সবচেয়ে পরিষ্কার পদ্ধতিটি হারিয়ে গেছে val()। এছাড়াও কিছু পদ্ধতি jQuery 1.6 হিসাবে পরিবর্তিত হয়েছে, সুতরাং এটির একটি আপডেট দরকার।

নিম্নলিখিত উদাহরণগুলির জন্য আমি ভেরিয়েবলটি ধরে নেব $selectএকটি পছন্দসই <select>ট্যাগটিতে নির্দেশিত একটি jQuery অবজেক্ট , যেমন নীচের মাধ্যমে:

var $select = $('.selDiv .opts');

দ্রষ্টব্য 1 - মান মিলের জন্য ভাল () ব্যবহার করুন:

মান মেলানোর জন্য, val()কোনও গুণাবলী নির্বাচনকারী ব্যবহারকারীর চেয়ে ব্যবহার আরও সহজ: https://jsfiddle.net/yz7tu49b/6/

$select.val("SEL2");

সেটার সংস্করণটি একই সাথে একটি মিলের সম্পত্তি সেট .val()করে selectট্যাগগুলিতে প্রয়োগ করা হয় , সুতরাং সমস্ত আধুনিক ব্রাউজারগুলিতে ঠিক কাজ করে।selectedoptionvalue

নোট 2 - প্রপ ব্যবহার করুন ('নির্বাচিত', সত্য):

আপনি যদি সরাসরি কোনও বিকল্পের নির্বাচিত স্থিতি সেট করতে চান তবে আপনি পরামিতি (পাঠ্যের মানের চেয়ে ) দিয়ে prop(না attr) ব্যবহার করতে পারেন :booleanselected

যেমন https://jsfiddle.net/yz7tu49b/

$option.prop('selected', true);  // Will add selected="selected" to the tag

নোট 3 - অজানা মানগুলির জন্য অনুমতি দিন:

যদি আপনি val()একটি নির্বাচন করতে ব্যবহার করেন <option>তবে ভালটি মিলছে না (মানগুলির উত্সের উপর নির্ভর করে ঘটতে পারে), তবে "কিছুই" নির্বাচিত হয়নি এবং $select.val()ফিরে আসবে null

সুতরাং, উদাহরণ হিসাবে দেখানো হয়েছে এবং দৃ rob়তার জন্য আপনি এই জাতীয় https://jsfiddle.net/1250Ldqn/ এর মতো কিছু ব্যবহার করতে পারেন :

var $select = $('.selDiv .opts');
$select.val("SEL2");
if ($select.val() == null) {
  $select.val("DEFAULT");
}

নোট 4 - সঠিক পাঠ্য মিল:

আপনি যদি সঠিক পাঠ্যের সাথে মিল করতে চান তবে আপনি একটি filterফাংশন সহ ব্যবহার করতে পারেন । যেমন https://jsfiddle.net/yz7tu49b/2/ :

var $select = $('.selDiv .opts');
$select.children().filter(function(){
    return this.text == "Selection 2";
}).prop('selected', true);

যদিও আপনার যদি অতিরিক্ত সাদা জায়গা থাকতে পারে তবে আপনি চেক হিসাবে একটি ট্রিম যোগ করতে চাইতে পারেন

    return $.trim(this.text) == "some value to match";

নোট 5 - সূচী অনুসারে ম্যাচ

আপনি যদি সূচক অনুসারে মেলতে চান তবে বাছাই করা বাচ্চাদের উদাহরণস্বরূপ https://jsfiddle.net/yz7tu49b/3/

var $select = $('.selDiv .opts');
var index = 2;
$select.children()[index].selected = true;

যদিও আমি আজকাল jQuery এর পক্ষে, ভবিষ্যতের প্রুফ কোডের পক্ষে সরাসরি DOM বৈশিষ্ট্যগুলি এড়াতে চাইছি, যাতে এটি https://jsfiddle.net/yz7tu49b/5/ হিসাবেও করা যায় :

var $select = $('.selDiv .opts');
var index = 2;
$select.children().eq(index).prop('selected', true);

নোট 6 - নতুন নির্বাচনটি ফায়ার করতে পরিবর্তন () ব্যবহার করুন

উপরের সমস্ত ক্ষেত্রে, পরিবর্তন ইভেন্টটি আগুন দেয় না। এটি এমন নকশার মাধ্যমে যাতে আপনি পুনরাবৃত্ত পরিবর্তনের ইভেন্টগুলি না হারিয়ে যান।

পরিবর্তন ইভেন্টটি তৈরি করতে, প্রয়োজন হলে, .change()jQuery selectঅবজেক্টে কেবল একটি কল যুক্ত করুন । যেমন প্রথম সরল উদাহরণটি https://jsfiddle.net/yz7tu49b/7/ হয়ে যায়

var $select = $('.selDiv .opts');
$select.val("SEL2").change();

অ্যাট্রিবিউট সিলেক্টর ব্যবহার করে উপাদানগুলি খুঁজে বের করার প্রচুর অন্যান্য উপায়ও রয়েছে, যেমন [value="SEL2"], তবে আপনাকে মনে রাখতে হবে বৈশিষ্ট্য নির্বাচনকারীরা অন্যান্য সমস্ত বিকল্পের তুলনায় তুলনামূলকভাবে ধীর।


13

আপনি নির্বাচনের নাম রাখতে পারেন এবং এটি ব্যবহার করতে পারেন:

$("select[name='theNameYouChose']").find("option[value='theValueYouWantSelected']").attr("selected",true);

এটি আপনার পছন্দসই বিকল্পটি নির্বাচন করবে।


12
   $(elem).find('option[value="' + value + '"]').attr("selected", "selected");

আপনার পোস্টের জন্য আপনাকে ধন্যবাদ, তবে এই উত্তরটি কথোপকথনে কী যুক্ত করে যা গ্রহণযোগ্য উত্তরগুলিতে অন্তর্ভুক্ত নয়?
এডওয়ার্ড

যদি ইতিমধ্যে নির্বাচিত কোনও বিকল্প থাকে তবে এটি ব্যর্থ হবে কারণ ড্রপ-ডাউনটিতে একাধিক আইটেম নির্বাচন করা যাবে না যদি না এটি একটি বহু-নির্বাচন হয়। আপনাকে .prop ('নির্বাচিত', সত্য) করতে হবে
ডেরেককোহেন

9

ডকুমেন্টেশনের জন্য আমার নিজের প্রশ্নের উত্তর দেওয়া। আমি নিশ্চিত যে এটি সম্পাদন করার অন্যান্য উপায় রয়েছে তবে এটি কাজ করে এবং এই কোডটি পরীক্ষা করা হয়।

<html>
<head>
<script language="Javascript" src="javascript/jquery-1.2.6.min.js"></script>
<script type="text/JavaScript">

$(function() {
    $(".update").bind("click",      // bind the click event to a div
        function() {
            var selectOption = $('.selDiv').children('.opts') ;
            var _this = $(this).next().children(".opts") ;

            $(selectOption).find("option[index='0']").attr("selected","selected");
//          $(selectOption).find("option[value='DEFAULT']").attr("selected","selected");
//          $(selectOption).find("option[text='Default']").attr("selected","selected");


//          $(_this).find("option[value='DEFAULT']").attr("selected","selected");
//          $(_this).find("option[text='Default']").attr("selected","selected");
//          $(_this).find("option[index='0']").attr("selected","selected");

    }); // END Bind
}); // End eventlistener

</script>
</head>
<body>
<div class="update" style="height:50px; color:blue; cursor:pointer;">Update</div>
<div class="selDiv">
        <select class="opts">
            <option selected value="DEFAULT">Default</option>
            <option value="SEL1">Selection 1</option>
            <option value="SEL2">Selection 2</option>
        </select>
    </div>
</body>
</html>

9

সঠিকভাবে এটি নীচের পদ্ধতিগুলির সাথে এটি ব্যবহার করে কাজ করবে

সাধারণ নির্বাচন বিকল্পের জন্য

<script>    
    $(document).ready(function() {
    $("#id").val('select value here');
       });
        </script>

2 টি বিকল্পের জন্য ট্রিগার বিকল্পটি ব্যবহার করতে হবে

<script>    
        $(document).ready(function() {
        $("#id").val('select value here').trigger('change');
           });
            </script>

8

Jquery-2.1.4 ব্যবহার করে , আমি আমার জন্য কাজ করার জন্য নিম্নলিখিত উত্তর পেয়েছি:

$('#MySelectionBox').val(123).change();

আপনার যদি স্ট্রিং মান থাকে তবে নিম্নলিখিতটি ব্যবহার করে দেখুন:

$('#MySelectionBox').val("extra thing").change();

অন্যান্য উদাহরণগুলি আমার পক্ষে কার্যকর হয়নি তাই আমি এই উত্তরটি যুক্ত করছি।

আমি আসল উত্তরটি এখানে পেয়েছি: https://forum.jquery.com/topic/how-to-dynamically-select-option-in-roddown-menu


8

ট্রিগার সহ নির্বাচিত মান নির্বাচন করার জন্য:

$('select.opts').val('SEL1').change();

সুযোগ থেকে বিকল্প সেট করার জন্য:

$('.selDiv option[value="SEL1"]')
    .attr('selected', 'selected')
    .change();

এই কোডটি শর্তযুক্ত নির্বাচন করা অবজেক্টটি অনুসন্ধান করতে নির্বাচক ব্যবহার করে, তারপরে নির্বাচিত বৈশিষ্ট্যটি পরিবর্তন করে attr()


আরও, আমি যোগ করার পরামর্শ দিচ্ছি change() এট্রিবিউট সেট করার পরে ইভেন্টটিselected মাধ্যমে কোডটি ব্যবহারকারীর দ্বারা নির্বাচনের পরিবর্তনের কাছাকাছি চলে আসবে।


6

আমি এটি ব্যবহার করি, যখন আমি তালিকার সূচি জানি।

$("#yourlist :nth(1)").prop("selected","selected").change();

এটি তালিকাটিকে পরিবর্তন করতে এবং পরিবর্তিত ইভেন্টটিকে আগুনের অনুমতি দেয়। ": Nth (n)" 0 সূচক থেকে গণনা করছে


5

আমি সাথে যাব: -

$("select#my-select option") .each(function() { this.selected = (this.text == myVal); });

5

এটা চেষ্টা কর

আপনি কেবল # আইডির পরিবর্তে নির্বাচন ক্ষেত্র আইডি ব্যবহার করুন (যেমন। # নির্বাচন_নাম)

পরিবর্তে বিকল্প মান আপনার নির্বাচন বিকল্প ব্যবহার মান

 <script>
    $(document).ready(function() {
$("#id option[value='option value']").attr('selected',true);
   });
    </script>

3

Jquery এর জন্য বেছে নেওয়া হয়েছে যদি আপনি বৈশিষ্ট্যটি ফাংশনে প্রেরণ করেন এবং আপডেট-নির্বাচনের বিকল্পটি প্রয়োজন হয় need

$('#yourElement option[value="'+yourValue+'"]').attr('selected', 'selected');
$('#editLocationCity').chosen().change();
$('#editLocationCity').trigger('liszt:updated');


1

$('select').val('the_value');সঠিক সমাধান দেখায় এবং তারপর আপনি তথ্য সারণী সারি থাকে:

$row.find('#component').val('All');

1

আপনি যদি jQuery ব্যবহার না করতে চান তবে নীচের কোডটি ব্যবহার করতে পারেন:

document.getElementById("mySelect").selectedIndex = "2";

1

প্রশ্নের জন্য ধন্যবাদ। আশা করি কোডটির এই অংশটি আপনার পক্ষে কাজ করবে।

var val = $("select.opts:visible option:selected ").val();

0
$('#select option[data-id-estado="3"]').prop("selected",true).trigger("change");

অথবা

$('#select option[value="myValue"]').prop("selected",true).trigger("change");

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