[jquery] 텍스트로 옵션을 선택해야하는 선택기는 무엇입니까?

<select>텍스트가 특정 값과 같은 옵션이 있는지 확인해야 합니다.

예를 들어가 있으면 <option value="123">abc</option>“abc”를 찾고 있습니다.

이 작업을 수행 할 수있는 선택기가 있습니까?

$('#select option[value="123"]');텍스트 와 비슷 하지만 비슷한 것을 찾고 있습니다.



답변

이것은 도움이 될 수 있습니다.

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

데모 바이올린

그러면 B텍스트가 포함 된 텍스트가 아닌 텍스트가있는 옵션이 제공 B됩니다. 도움이 되었기를 바랍니다

최신 버전의 jQuery에서는 위의 기능이 작동하지 않습니다. 아래 Quandary가 언급 한 것처럼 , 이것은 jQuery 1.9.1에서 작동합니다.

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

바이올린 업데이트


답변

:contains()선택기 를 사용하여 특정 텍스트가 포함 된 요소를 선택할 수 있습니다 .
예를 들면 다음과 같습니다.

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

주어진 <select>요소에 그러한 옵션이 있는지 확인하려면 다음 .has()방법을 사용하십시오 .

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

<select>이러한 옵션이 포함 된 모든을 찾으려면 :has()선택기를 사용하십시오 .

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


답변

텍스트 상자의 값을 기반으로 목록의 선택된 인덱스를 설정하려고하는데 일부 텍스트 값이 여러 옵션에 포함되어 있기 때문에 이전 제안 중 어느 것도 jQuery 1.7.2에서 효과가 없었습니다. 나는 다음을 사용하여 끝났다.

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


답변

아래의 동일한 코드에 작동 코드가 있습니다.

$("#test option").filter(function() {
    return $(this).text() =='Ford';
}).prop("selected", true);

데모 : http://jsfiddle.net/YRBrp/83/


답변

이것은 나를 위해 일했다 : $("#test").find("option:contains('abc')");


답변

드롭 다운 목록에서 텍스트를 선택하는 가장 좋은 방법입니다.

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


답변

Firefox와 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);

의사 코드 :

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