[javascript] jQuery-텍스트 설명을 통해 선택 컨트롤의 선택된 값 설정

선택 컨트롤이 있고 자바 스크립트 변수에는 텍스트 문자열이 있습니다.

jQuery를 사용하여 select 컨트롤의 선택된 요소를 내가 가진 텍스트 설명이있는 항목으로 설정하려고합니다 (내가없는 값과 반대).

나는 가치로 설정하는 것이 매우 사소한 것을 알고 있습니다. 예 :

$("#my-select").val(myVal);

그러나 나는 텍스트 설명을 통해 그것을하는 데 약간의 충격을 받았습니다. 나는 텍스트 설명에서 가치를 얻는 방법이 있어야한다고 생각하지만 내 두뇌는 너무 금요일 오후에 그것을 해결할 수 없습니다.



답변

jQuery v1.6 +에 대한 설명으로 선택

var text1 = 'Two';
$("select option").filter(function() {
  //may want to use $.trim in here
  return $(this).text() == text1;
}).prop('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select>
  <option value="0">One</option>
  <option value="1">Two</option>
</select>

1.6 이하 및 1.4 이상의 jQuery 버전

var text1 = 'Two';
$("select option").filter(function() {
  //may want to use $.trim in here
  return $(this).text() == text1;
}).attr('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>

<select>
  <option value="0">One</option>
  <option value="1">Two</option>
</select>

이 방법은 1.6보다 높지만 1.9보다 작은 버전에서는 작동하지만 1.6 이후에는 더 이상 사용되지 않습니다. 그것은 작동하지 않습니다 1.9+ jQuery를에.


이전 버전

val() 두 경우 모두 처리해야합니다.

$('select').val('1'); // selects "Two"
$('select').val('Two'); // also selects "Two"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

<select>
  <option value="0">One</option>
  <option value="1">Two</option>
</select>


답변

나는 이것을 테스트하지 않았지만 이것은 당신을 위해 효과가있을 수 있습니다.

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


답변

이것을 시도하십시오 … 텍스트 myText로 옵션을 선택하려면

$("#my-Select option[text=" + myText +"]").prop("selected", true);


답변

이 방법으로 수행합니다 (jQuery 1.9.1)

$("#my-select").val("Dutch").change();

참고 : change ()를 잊지 마십시오. 그 때문에 오랫동안 검색해야했습니다 🙂


답변

$("#myselect option:contains('YourTextHere')").val();

텍스트 설명이 포함 된 첫 번째 옵션의 값을 반환합니다. 이것을 테스트하고 작동합니다.


답변

모든 jQuery 버전의 합병증을 피하려면 솔직히 이러한 간단한 자바 스크립트 함수 중 하나를 사용하는 것이 좋습니다 …

function setSelectByValue(eID,val)
{ //Loop through sequentially//
  var ele=document.getElementById(eID);
  for(var ii=0; ii<ele.length; ii++)
    if(ele.options[ii].value==val) { //Found!
      ele.options[ii].selected=true;
      return true;
    }
  return false;
}

function setSelectByText(eID,text)
{ //Loop through sequentially//
  var ele=document.getElementById(eID);
  for(var ii=0; ii<ele.length; ii++)
    if(ele.options[ii].text==text) { //Found!
      ele.options[ii].selected=true;
      return true;
    }
  return false;
}


답변

나는 이것이 오래된 게시물이라는 것을 알고 있지만 jQuery 1.10.3과 위의 솔루션을 사용하여 텍스트로 선택할 수는 없습니다. 나는 다음 코드를 사용하여 끝났습니다 (스풀 슨 솔루션의 변형).

      var textToSelect = "Hello World";

      $("#myDropDown option").each(function (a, b) {
            if ($(this).html() == textToSelect ) $(this).attr("selected", "selected");
        });

그것이 누군가를 돕기를 바랍니다.