2013-10-29 2 views
1

두 가지 유형의 목록이 선택 요소에 추가되었습니다.선택한 요소에 특성이 있는지 확인합니다.

사용자 목록 : 그룹의 <option value="domain\davidr" userid="108">David</option>

목록 : <option value="Test Group" groupid="10">Test Group</option>

이 내 HTML을 선택입니다 :

<select id="groupOwner"> 
     <option value="default" disabled>Select a Group Owner</option> 
     <optgroup label="---Users---"></optgroup> 
    </select> 

내가 "사용자"또는 "중 하나로 변수를 설정해야합니다 그룹 "을 선택합니다.

내가이 일을 시도 : var ownerType = $("#groupOwner[groupid]") ? "group" : "user";을하지만 "그룹"

+0

철자가 정확합니다. – Batman

+0

누락 된 '= "..."부분에 대해 이야기하고 있었지만, 잘못되었거나 정확하지 않은지 잘 모르기 때문에 신중하게 사용했습니다. – ajax333221

+0

잘 작동합니다 . 나는 당신이 전체를 쓸 필요가 있다고 생각하지 않는다 = "무능한" – Batman

답변

1

는 첫째, groupiduseridoption 요소의 유효한 속성이 아니며 페이지가 잘못 렌더링을 반환 유지합니다. 대신 data-* 속성을 사용

<!-- Example user item --> 
<option value="domain\davidr" data-userid="108">David</option> 

<!-- Example group item --> 
<option value="Test Group" data-groupid="10">Test Group</option> 

둘째, #groupOwner은 선택, 당신이 선택한 option의 데이터 속성을 확인해야하는 반면. 이 시도 :

var ownerType = $("#groupOwner option:selected").data('groupid') ? "group" : "user"; 

Example fiddle

+0

고마워, 이건 내가 성취하려고 시도한거야. 부수적으로, 페이지가 유효하지 않은 경우 결과는 무엇입니까, 나를 위해 잘 작동하는 것 같습니다. 다른 사람들은 사용자 정의 속성을 사용하지 않을 것을 제안했기 때문에 이유를 묻습니다. 다시 한번 감사드립니다. – Batman

+0

문제 없으니 기꺼이 도와주세요. 페이지가 유효하지 않은 경우 Quirks 모드로 렌더링되므로 jQuery 선택기가 예상대로 작동하지 않으며 예상치 못한 곳에 열거 나 닫힌 요소와 관련된 다양한 레이아웃 문제가 발생할 수 있습니다. –

+0

오, 알았어. 따라서 내 페이지가 예상대로 렌더링되는지 확인하려면 아마도이를 수정해야합니다. 설명 해줘서 고마워. – Batman

0

당신의 선택은 항상 true로 평가됩니다 : 당신의 선택에 대한 일치하지 않는 경우는, jQuery를 당신의 삼원 테스트 true로 평가됩니다 하늘의 배열을 반환합니다.

은 요소가 DOM에 있는지 여부를 확인하기 위해 jQuery에 의해 반환 된 배열의 길이를 테스트해야합니다.

예 :.

// Will print No, foo isn't an HTML element present on the DOM 
$('foo').length ? console.log('Yes') : console.log('No'); 

// Will print Yes, $('foo') = [] 
$('foo') ? console.log('Yes') : console.log('No'); 
0

$ ("선택") 수 (0) .hasAttributes ("속성");

관련 문제