jQuery නිශ්චිත විකල්ප ටැග් පෙළ ලබා ගන්න


1236

හරි, මට මෙය ඇති බව පවසන්න:

<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

මට '2' අගය ඇති විට "විකල්පය B" ලබා ගැනීමට අවශ්‍ය නම් තේරීම්කරුගේ පෙනුම කෙබඳුද?

මෙය තෝරාගත් පෙළ අගය ලබා ගන්නේ කෙසේදැයි විමසන්නේ නැති බව මතක තබා ගන්න , නමුත් ඒවායින් එකක් පමණක්, තෝරාගත් හෝ නොවූවත්, අගය ගුණාංගය මත පදනම්ව. මම උත්සාහ කළා:

$("#list[value='2']").text();

නමුත් එය ක්‍රියාත්මක නොවේ.


මෙම කාල සීමාව සඳහා, භාවිතා කරන්න:$("#list option").filter(function () { return $(this).html() == "stuff"; }).val();
rook

Answers:


1123

එය සමාන listදේපලක් ඇති හැඳුනුම්පතක් සහිත මූලද්‍රව්‍යයක් සොයයි . ඔබට අවශ්‍ය වන්නේ දරුවාගේ :value2
optionlist

$("#list option[value='2']").text()

4
මෙම නික් එකට ස්තූතියි. ඔබට ගතිකව අගය ලබා ගැනීමට අවශ්‍ය නම් මෙන්න මෙම පිළිතුර පුළුල් වේ: var selectValue = document.getElementById ('list'). අගය; var selectOption = $ ("# ලැයිස්තු විකල්පය [value =" + selectValue + "]"). පෙළ (); /// හොඳ උදාහරණයක් nickf.
කෙවින් ෆ්ලොරිඩා

283
E කෙවින්, එවැනි අවස්ථාවක, ඔබට පහත පිළිතුර භාවිතා කිරීමට අවශ්‍ය විය හැකිය. $('#list option:selected').text()
nickf

6
icknickf, සහ වඩාත් සරල,$('#list').val()
ඩෙරෙක් 朕 會 功夫

36
E ඩෙරෙක්, වැල් () විකල්පයේ පෙළ ලබා නොදෙන අතර, එහි වටිනාකම ලබා දෙනු ඇත, සමහර අවස්ථාවල (බොහෝ දේ මම කියමි) එක හා සමාන නොවේ.
itsmequinn

ඔබ හැම විටම භාවිතා කළ යුතු .trim()පසු .text()සමහර බ්රවුසරය පරිශීලක නොපෙනෙන නමුත් වැරදි අගයන් ලබා ඇති විය හැකි බව පෙළ පෙර හා පසු සමහර හිස් තැන් සමහර විට එකතු විය හැකි බැවින්$("#list option[value='2']").text().trim()
හසන් ALAMI

1262

2 ක අගයක් සහිත විකල්පය ලබා ගැනීමට ඔබ කැමති නම්, භාවිතා කරන්න

$("#list option[value='2']").text();

දැනට තෝරාගෙන ඇති විකල්පය ලබා ගැනීමට ඔබ කැමති නම්, භාවිතා කරන්න

$("#list option:selected").text();

11
පෙළ වෙනුවට අගය ලබා ගැනීම සඳහා, ඔබට ලිවීමට අවශ්‍ය වනු ඇත: - $ ("# ලැයිස්තුව තෝරන්න"). Val (); මෙය අසන ලද ප්‍රශ්නයේ සත්‍ය පිළිතුර නොවන බව මම දනිමි, නමුත් ගූගල් හරහා පැමිණෙන නවකයින් සඳහා මෙම කරුණ සඳහන් කිරීමට තවමත් සිතුවෙමි.
දැනුම තණ්හාව

මම භාවිතා කරන්නේ $ ("# ලැයිස්තු විකල්පය: තෝරාගත්"). පෙළ () සහ $ ("# ලැයිස්තු විකල්පය: තෝරාගත්"). Attr ('value')
fullstacklife

තෝරාගත් පෙළ ලබා ගැනීම සඳහා (ප්‍රශ්නය විශේෂයෙන් එය ඉල්ලා නොසිටියද), තෝරාගත් අගය කුමක්දැයි නොදැන සිටීම නිසා මෙම ක්‍රමය වඩා උසස් වේ.
TheJerm

132

මෙය මට හොඳින් ක්‍රියාත්මක විය, මම MySQL විසින් ජනනය කරන ලද විකල්පයන් සමඟ වෙනස් අගයන් දෙකක් යැවීමට ක්‍රමයක් සොයමින් සිටියෙමි, පහත දැක්වෙන්නේ සාමාන්‍ය සහ ගතිකය:

$(this).find("option:selected").text();

එක් විවරණයක සඳහන් කළ පරිදි. මේ සමඟ මට වටිනාකම්, විකල්ප අගය සහ පෙළ යන දෙකම ලබා ගැනීමට අවශ්‍ය මගේ තේරීම් පෙට්ටි සමඟ ක්‍රියා කරන ගතික කාර්යයක් නිර්මාණය කිරීමට මට හැකි විය.

දින කිහිපයකට පෙර මම දුටුවා මම මෙම කේතය භාවිතා කළ වෙබ් අඩවියේ 1.6 සිට 1.9 දක්වා jQuery යාවත්කාලීන කරන විට, මෙම ක්‍රියාකාරිත්වය නැවැත්වීම ... බොහෝ විට වෙනත් කේත කැබැල්ලක් සමඟ ගැටුමක් විය හැකිය ... කෙසේ වෙතත්, විසඳුම වූයේ විකල්පය ඉවත් කිරීමයි () අමතන්න:

$(this).find(":selected").text();

එය මගේ විසඳුම විය ... ඔබේ jQuery යාවත්කාලීන කිරීමෙන් පසු ඔබට කිසියම් ගැටළුවක් ඇත්නම් පමණක් එය භාවිතා කරන්න.



2
මෙම පිළිතුර තීක්ෂ්ණ බුද්ධියකින් යුක්ත වන අතර, මට තිබූ ගැටලුවකට නිට්පික් කිරීමට එය උපකාරවත් වූ අතර, එය නිසි ලෙස ප්‍රශ්නයට පිළිතුරු සපයන්නේ නැත: කරුණාකර මෙය තෝරාගත් පෙළ අගය ලබා ගන්නේ කෙසේදැයි
මුරණ්ඩු ෂෝවාගු

109

පාවුලෝ විසින් පළ කරන ලද මුල් HTML මත පදනම්ව මම පහත කරුණු ඉදිරිපත් කළෙමි.

$("#list").change(function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් සහ ෆයර්ෆොක්ස් හි වැඩ කිරීම සඳහා එය පරීක්ෂා කර ඇත.


11
මේ සඳහා විකල්පයක් නම්: $ ("විකල්පය: තෝරාගත්", මෙය). පෙළ ()
ඩග් එස්

මෙය වඩා හොඳ පිළිතුරකි, මන්ද එය ස්ථිතික HTML සහ සරල ජාවාස්ක්‍රිප්ට් සිදුවීම් පමණක් නොව සංකීර්ණ අවස්ථා සඳහාද හේතු වේ.
oasisfleeting

37
$("#list option:selected").each(function() {
   alert($(this).text());
});  

#listමූලද්රව්යයේ තෝරාගත් බහු අගය සඳහා .


37
  1. පිටුවේ ඇත්තේ එක් තෝරාගත් ටැගයක් පමණක් නම් ඔබට 'ලැයිස්තුවේ' හැඳුනුම්පත ඇතුලත තෝරාගත හැකිය.

    jQuery("select option[value=2]").text();
  2. තෝරාගත් පෙළ ලබා ගැනීම සඳහා

    jQuery("select option:selected").text();

24

පහත සඳහන් දෑ උත්සාහ කරන්න:

$("#list option[value=2]").text();

ඔබගේ නිසා ඔබේ මුල් තැනට වැඩ නැහැ හේතුව ද මෙය OPTIONටැග් ඔබේ දරුවන් SELECTද ඇති ටැගය, id list.


19

මෙය පැරණි ප්‍රශ්නයක් වන අතර එය කාලයාගේ ඇවෑමෙන් යාවත්කාලීන කර නොමැති අතර දැන් මෙය කිරීමට නිවැරදි ක්‍රමය භාවිතා කිරීම වේ

$("#action").on('change',function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

මෙය උපකාරී වේ යැයි මම බලාපොරොත්තු වෙමි :-)


මෙය නියත වශයෙන්ම නිවැරදි නොවේ කරුණාකර මෙය තෝරාගත් පෙළ අගය ලබා ගන්නේ කෙසේදැයි
වෙස්ලි ස්මිත්

17

තෝරාගත් ලේබලය ලබා ගැනීමට මට අවශ්‍ය විය. මෙය jQuery 1.5.1 හි මට වැඩ කළේය.

$("#list :selected").text();

17
$(this).children(":selected").text()

අවාසනාවට, optgroupඔබේ දරුවෙකු ලෙස ටැග් කර ඇති විට මෙය ක්‍රියාත්මක නොවන selectඅතර තෝරාගත් විකල්පය මෙහි ඇත optgroup. $("#list option:selected").text();මෙම අවස්ථාවෙහිදී පවා ක්‍රියාත්මක වන භාවිතය
මාටින් එම්

13
$("#list [value='2']").text();

හැඳුනුම් තේරීමෙන් පසු ඉඩක් තබන්න.


13

ශ්‍රිතය භාවිතයෙන් ඔබට තෝරාගත් විකල්ප පෙළ ලබා ගත හැකිය .text();

ඔබට ශ්‍රිතය මේ ආකාරයට හැඳින්විය හැකිය:

jQuery("select option:selected").text();

10

.Each (ශ්‍රිතය () ...) සමඟ ගතිකව සාදන ලද තෝරාගත් මූලද්‍රව්‍ය හරහා “ලූප” වන අතර: $("option:selected").text();සහ$(this + " option:selected").text() තෝරාගත් විකල්පය පෙළ නැවත නැහැ - ඒ වෙනුවට ඔහු කෙළේ, එය ශූන්ය විය.

නමුත් පීටර් මෝර්ටෙන්සන්ගේ විසඳුම ක්‍රියාත්මක විය:

$(this).find("option:selected").text();

සුපුරුදු ක්‍රමය a හි සාර්ථක නොවන්නේ මන්දැයි මම නොදනිමි .each() (බොහෝ විට මගේම වැරැද්දක්) , නමුත් ස්තූතියි, පීටර්. එය මුල් ප්‍රශ්නය නොවන බව මම දනිමි, නමුත් මම එය සඳහන් කරන්නේ "ගූගල් හරහා පැමිණෙන නවකයින් සඳහා" ය.

$('#list option:selected").each()තෝරාගත් මූලද්‍රව්‍යයෙන් ද දේවල් උදුරා ගැනීමට අවශ්‍ය නම් හැර මම ආරම්භ කරමි.


8

භාවිත:

function selected_state(){
    jQuery("#list option").each(function(){
        if(jQuery(this).val() == "2"){
            jQuery(this).attr("selected","selected");
            return false;
        }
    });
}

jQuery(document).ready(function(){
    selected_state();
});

5

මම හැඳුනුම්පත වෙනුවට අභ්‍යන්තර ක්ෂේත්‍ර නාමයෙන් අගය ලබා ගැනීමට සොයමින් සිටි අතර ගූගල් වෙතින් මෙම තනතුරට පැමිණියේ එය උපකාරවත් නමුත් මට අවශ්‍ය විසඳුම සොයා ගැනීමට නොහැකි වූ නමුත් මට විසඳුම ලැබී ඇති අතර මෙන්න එයයි:

එබැවින් මෙය ෂෙයාර්පොයින්ට් ලැයිස්තු සඳහා දිගු හැඳුනුම්පතක් භාවිතා කරනවා වෙනුවට ක්ෂේත්‍ර අභ්‍යන්තර නාමයෙන් තෝරාගත් වටිනාකමක් සොයන කෙනෙකුට උදව් වනු ඇත:

var e = $('select[title="IntenalFieldName"] option:selected').text(); 

Solution න විසඳුම. කණගාටුයි, එය මෙතරම් රහසිගත ස්ථානයක. මෙම විසඳුම සැපයීම සඳහා වඩාත් කැපී පෙනෙන ස්ථානයක් සොයා ගැනීමට ඔබට අවශ්‍ය විය හැකිය. සමහර විට ඔබට ඔබේම ප්‍රශ්නයක් ඇසීමට හා පිළිතුරු දීමට හැකිද?
ඇන්ඩ rew කොසැක්

4

ගතිකව වාත්තු කරන ලද වස්තුවක් සමඟ කටයුතු කරන විට මට මෙම පිළිතුර අවශ්‍ය වූ අතර මෙහි ඇති අනෙක් ක්‍රම ක්‍රියාත්මක නොවන බව පෙනේ:

element.options[element.selectedIndex].text

මෙය ඇත්ත වශයෙන්ම DOM වස්තුව භාවිතා කරන්නේ එහි HTML එක nodeValue, childNodes ආදිය සමඟ විග්‍රහ කිරීම වෙනුවට ය.


4

ඉඟියක්: ඔබේ අගය ගතික නම් ඔබට පහත කේතය භාවිතා කළ හැකිය:

$("#list option[value='"+aDynamicValue+"']").text();

හෝ (වඩා හොඳ විලාසිතාව)

$("#list option").filter(function() {
     return this.value === aDynamicValue;
}).text();

JQuery හි සඳහන් කර ඇති පරිදි නිශ්චිත විකල්ප ටැග් පෙළ ලබාගෙන ගතික විචල්‍යය අගයට තැබීම



2

තෝරාගත් බහුවිධ සඳහා ගතික අනුවාදයක් මට අවශ්‍ය වූ අතර එය දකුණට තෝරාගත් දේ පෙන්වනු ඇත (මා කියවා දැකීමට කැමති නම් $(this).find... කලින්):

<script type="text/javascript">
    $(document).ready(function(){
        $("select[showChoices]").each(function(){
            $(this).after("<span id='spn"+$(this).attr('id')+"' style='border:1px solid black;width:100px;float:left;white-space:nowrap;'>&nbsp;</span>");
            doShowSelected($(this).attr('id'));//shows initial selections
        }).change(function(){
            doShowSelected($(this).attr('id'));//as user makes new selections
        });
    });
    function doShowSelected(inId){
        var aryVals=$("#"+inId).val();
        var selText="";
        for(var i=0; i<aryVals.length; i++){
            var o="#"+inId+" option[value='"+aryVals[i]+"']";
            selText+=$(o).text()+"<br>";
        }
        $("#spn"+inId).html(selText);
    }
</script>
<select style="float:left;" multiple="true" id="mySelect" name="mySelect" showChoices="true">
    <option selected="selected" value=1>opt 1</option>
    <option selected="selected" value=2>opt 2</option>
    <option value=3>opt 3</option>
    <option value=4>opt 4</option>
</select>

2

ඔබට පහත දැක්වෙන ක්‍රම වලින් එකක් ලබා ගත හැකිය

$("#list").find('option').filter('[value=2]').text()

$("#list").find('option[value=2]').text()

$("#list").children('option[value=2]').text()

$("#list option[value='2']").text()

$(function(){    
    
    console.log($("#list").find('option').filter('[value=2]').text());
    console.log($("#list").find('option[value=2]').text());
    console.log($("#list").children('option[value=2]').text());
    console.log($("#list option[value='2']").text());
    
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.