2013-04-01 2 views
4

왜 우리는 예를 들어 select 태그JQuery와 - 왜 우리는 선택 태그 ('선택', '선택') .attr 쓰기 않습니다

으로 .attr('selected','selected') 쓰기 않습니다

$('#countryList option').filter(function() { 
return ($(this).text() == findText); }).attr('selected','selected'); 
}); 

그것은 정말 수단을 무엇 ?

+0

부울 속성에 대한 규칙이 더 있습니다. 비어 있거나 속성 이름 자체와 동일한 값을 포함합니다. –

답변

2

설명 : .attr('selected','selected').

.attr 안에있는 첫 번째 인수는 첫 번째 인수로 전달 된 특성의 두 번째 인수 집합 value을 가리키는 동안 attribute을 가리키는 동안 나타냅니다.

단지 .attr('selected')이면 selected 속성의 값을 반환합니다.

0

우리는 왜 쓰는가 .attr ('선택', '선택')

당신이 발을 사용할 수있는 선택의 선택한 항목을 (설정하려면, jQuery를 선택하도록 허용하는 방법이다

)

$('#countryList').val(5); // it will set the selected attribute for option having value 5 
+0

그것을 얻지 못했습니다 .... plz 정교합니다. –

0

.attr() JQuery와 방법 셀렉터의 속성을 설정하는 데 사용되는 선택된 옵션을 설정한다. 그래서이 함수는 텍스트를 드롭 다운에서 선택된 것으로 표시하는 데 사용하고 있습니다.

See tutorial here.

0

일반적으로 선택한 속성은 값과 관계없이 단순한 존재/부재로 대부분의 브라우저에서 존중됩니다. 사양에 따르면, 이것은 부울 속성 (javascript를 통해 설정할 때)이지만 HTML 마크 업에서이 속성은 일반적으로 존재/부재로 표시됩니다. 이는 기본적으로 요소가 드롭 다운에 표시되는 것을 의미합니다.

0

는 무슨 일이 일어나고 있는지 참조 :

$('#countryList option').filter(function() { 
    return ($(this).text() == findText); 
}).attr('selected','selected'); 
}); //<---------this is extra 
좋아

하지만 문제는 입니다 왜 우리가 쓰기 않습니다 .attr('selected','selected') 태그 select과 :

당신이 <select> 선택한 속성을 설정하지 않는 볼 수 있다면하지만, <option> 포함되어 있습니다.

findText

0

selected에 해당되는 텍스트를 보유되는 option 선택한 속성을 설정할 수 있도록 코드 <option> 부울 속성; HTML 속성으로 표현 된 값은 비어 있거나 지정되지 않았거나 규범에 따라 true을 나타 내기 위해 속성 이름 자체와 동일합니다.

$('#countryList option').filter(function() { 
    return ($(this).text() == findText); 
}).attr('selected','selected'); 

이 코드는 일치하는 첫 번째 옵션 요소에 대해 selected 특성을 설정합니다.코드에는 실제로 몇 가지 문제가 있습니다.

  1. .attr() 함수는 필터 결과에 관계없이 호출됩니다.
  2. selected 속성은 속성이 아니라 속성입니다.

그것은 다음과 같이 다시 작성할 수 있습니다 :

$('#countryList option').each(function() { 
    if (this.text == findText) { 
     this.selected = true; 
     return false; // stop searching after we find the first match 
    } 
}); 
0

을 모든 프로그래밍 언어에서 당신은 당신이 그 속성에 참조 값을 할당해야하는 속성을 설정하려는 경우. 그래서 jquery도 똑같은 일을합니다.