[jQuery] 특정 select에서 value가 있는 option만을 선택하려면 어떻게 해야 할까요?
조회수 2200회
초보 개발자입니다.
개발요청을 받았는데 나름대로 짜긴 짰지만 더 좋은 방법이 없을까 해서 질문 올립니다.
<select id="selectid">
<option value="">선택하세요</option>
<option value="choose1">선택1</option>
<option value="choose2">선택2</option>
</select>
개인별로 option의 선택값이 여러개가 될수도 있고 하나가 될 수도 있습니다. 이 중 선택값이 '선택하세요'를 제외한 하나만 있을 때 그 하나를 자동으로 선택하려고 합니다.
구현이 불가능하다면 select의 갯수가 2개면 두번째걸 선택하거나, each를 이용해서 찾을 수도 있겠지만 하나의 선택자로만 바로 선택을 해서 찾는 방법이 있는지 궁금합니다.
제가 여기까진 해봤는데
$('#selectid :not([value=""])')
이렇게 하면
<select id="selectid">
<option>선택하세요</option>
</select>
요렇게 된 것도 찾아버리더라구요... 방법이 없을까요?
1 답변
-
만약:
<select id="selectid"> <option value="">선택하세요</option> <option value="choose1">선택1</option> </select>
이렇게 되어 있으면 작성하신 selector:
$('#selectid :not([value=""])')
로 해결이 됩니다만, 예시로 든건
<select id="selectid"> <option>선택하세요</option> <option value="choose1">선택1</option> </select>
이렇게 아예 value 속성이 없는 경우잖아요? 그러니
$('#selectid [value])')
이렇게 해야 value 속성이 있는 옵션만 선택합니다.
value 속성이 아예 없거나, 있어도 빈 값인 옵션은 제하고 싶다면 위 예시를 둘 다 적용하면 되겠죠?
$('#selectid [value]:not([value=""])') // 아래와 같음 $('select#selectid').find('option[value]').not('option[value=""]')
댓글 입력