JQuery সহ নির্বাচিত বিকল্পের সূচক পান


171

এইচটিএমএল <select>আইটেম থেকে কোনও নির্বাচিত বিকল্পের সূচি কীভাবে পাওয়া যায় সে সম্পর্কে আমি কিছুটা বিভ্রান্ত ।

উপর এই পৃষ্ঠা সেখানে বর্ণিত দুটি পদ্ধতি আছে। তবে দুজনেই সবসময় ফিরছেন -1। এখানে আমার jQuery কোড:

$(document).ready(function(){
    $("#dropDownMenuKategorie").change(function(){
        alert($("#dropDownMenuKategorie option:selected").index());
        alert($("select[name='dropDownMenuKategorie'] option:selected").index());
    });
});

এবং এইচটিএমএলে

(...)
<select id="dropDownMenuKategorie">
    <option value="gastronomie">Gastronomie</option>
    <option value="finanzen">Finanzen</option>
    <option value="lebensmittel">Lebensmittel</option>
    <option value="gewerbe">Gewerbe</option>
    <option value="shopping">Shopping</option>
    <option value="bildung">Bildung</option>
</select>
(...)

কেন এই আচরণ? selectএর change()পদ্ধতি নির্ধারণের মুহূর্তে "প্রস্তুত" না থাকার কি কোনও সুযোগ আছে ? অতিরিক্তভাবে, এ পরিবর্তন .index()করা .val()সঠিক মানটি ফিরিয়ে দিচ্ছে, তাই এটি আমাকে আরও বিভ্রান্ত করে।


1
যেমন একটি পুরানো প্রশ্ন কিন্তু আসল সমস্যাটি [name=]যখন নির্বাচন করা idহয় তখন এটি ব্যবহৃত হয়। [0].selectedIndexএবং option:selected-answers নিচে উভয় ঠিক আছে।
দিইনেওয়ালা

উত্তর:


338

প্রথম পদ্ধতিগুলি আমি যে ব্রাউজারগুলিতে পরীক্ষা করেছি সেগুলিতে কাজ করে বলে মনে হয়, তবে বিকল্প ট্যাগগুলি সমস্ত ব্রাউজারে সত্যিকারের উপাদানগুলির সাথে সামঞ্জস্যপূর্ণ না, ফলে ফলাফল পৃথক হতে পারে।

শুধু selectedIndexডিওএম উপাদানটির সম্পত্তি ব্যবহার করুন :

alert($("#dropDownMenuKategorie")[0].selectedIndex);

হালনাগাদ:

সংস্করণ 1.6 jQuery এর propবৈশিষ্ট্যগুলি পড়তে ব্যবহার করা যেতে পারে এমন একটি পদ্ধতি রয়েছে :

alert($("#dropDownMenuKategorie").prop('selectedIndex'));


33
@ জোয়ান.বিডিএম jquery এর selectedIndexসম্পত্তি নেই। যোগ করা [0]jquery অবজেক্টটিকে জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করে যা selectedIndexসম্পত্তি আছে। এই উদাহরণটি ব্যতীত কাজ করবে না[0]
আরাম

@ জেসনল .: selectedIndexএকটি সম্পত্তি, এবং এর সাথে সম্পর্কিত কোনও বৈশিষ্ট্য নেই। attrপদ্ধতি 1.6 আগের সংস্করণে সম্পত্তি পড়তে কাজ করতে পারে, কিন্তু যে সংস্করণ থেকে নয়।
গুফা 20

@ গুফা কোনও ধারণা কেন selectedIndexপ্রথম বিকল্প থেকে 0 থেকে শুরু হয় না?
আদমজ

1
@ অ্যাডামজ: তাহলে আপনি কিছু ভুল করছেন। selectedIndexসম্পত্তি শূন্য ভিত্তি করে তৈরি। আমি ডকুমেন্টেশন চেক করেছি এবং এমনকি এটি সম্পর্কে সত্যই 100% নিশ্চিত হওয়ার চেষ্টা করেছি।
গুফা

95

এটি Jquery পদ্ধতিতে সমাধান করার ভাল উপায়

$("#dropDownMenuKategorie option:selected").index()

2
আমি পছন্দ করি যে এই উত্তরটির [0]জন্য ওপির পছন্দের উত্তরের প্রয়োজন নেই এবং পাইথন দেব হিসাবে, আমি এই উত্তরটির পঠনযোগ্যতার সত্যই প্রশংসা করতে পারি।
নিউক্লিয়ারপিয়ন

4
ওপি ইতিমধ্যে এটি চেষ্টা করেছিল। কোডটি প্রশ্নের প্রথম পদ্ধতির মতো।
গুফা

18

আমি ব্যবহারকারীর দ্বারা উত্তর উপর ভিত্তি করে কিছুটা আলাদা সমাধান আছে 167517। আমার ফাংশনে আমি নির্বাচিত বাক্সটির আইডির জন্য একটি পরিবর্তনশীল ব্যবহার করছি যা আমি লক্ষ্য করছি।

var vOptionSelect = "#productcodeSelect1";

সূচকটি এর সাথে ফিরে আসে:

$(vOptionSelect).find(":selected").index();

17

আপনি .prop(propertyName)jQuery অবজেক্টের প্রথম উপাদান থেকে সম্পত্তি পেতে ফাংশনটি ব্যবহার করতে পারেন ।

var savedIndex = $(selectElement).prop('selectedIndex');

এটি আপনার কোডটিকে jQuery ক্ষেত্রের মধ্যে রাখে এবং নির্বাচিত বিকল্পটি খুঁজে পেতে কোনও নির্বাচক ব্যবহারের অন্যান্য বিকল্পটি এড়িয়ে যায়। তারপরে আপনি ওভারলোড ব্যবহার করে এটি পুনরুদ্ধার করতে পারেন:

$(selectElement).prop('selectedIndex', savedIndex);

6

এটা চেষ্টা কর

 alert(document.getElementById("dropDownMenuKategorie").selectedIndex);

7
পর্যাপ্ত jQuery নয়
sohaiby

1
সমস্ত সতর্কতা সঙ্গে কি?
বিনওয়াহ

3
@ বিয়ানওয়াহ - যে কোনও কিছুর পরীক্ষা করার এটি সেরা উপায়! ;)
জোপিসি

পছন্দ করুন

@ রিনার.লুক -;) =
সুন্দরীতা

6

সিলেক্ট ইন্ডেক্স একটি জাভাস্ক্রিপ্ট সিলেক্ট প্রপার্টি। JQuery এর জন্য আপনি এই কোডটি ব্যবহার করতে পারেন:

jQuery(document).ready(function($) {
  $("#dropDownMenuKategorie").change(function() {
    // I personally prefer using console.log(), but if you want you can still go with the alert().
    console.log($(this).children('option:selected').index());
  });
});

3

আপনি JQuery এর .prop () পদ্ধতি ব্যবহার করে বাছাই করা বাক্সের সূচক পেতে পারেন

এটা যাচাই কর :

<!doctype html>
<html>
<head>
<script type="text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

});

function check(){
    alert($("#NumberSelector").prop('selectedIndex'));
    alert(document.getElementById("NumberSelector").value);
}
</script>
</head>

<body bgcolor="yellow">
<div>
<select id="NumberSelector" onchange="check()">
    <option value="Its Zero">Zero</option>
    <option value="Its One">One</option>
    <option value="Its Two">Two</option>
    <option value="Its Three">Three</option>
    <option value="Its Four">Four</option>
    <option value="Its Five">Five</option>
    <option value="Its Six">Six</option>
    <option value="Its Seven">Seven</option>
</select>
</div>
</body>
</html>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.