2012-03-13 2 views
3

jquery에서 사용하기 위해 존재하지 않는 속성을 html 요소에 첨부하는 것이 좋습니다. 존재하지 않는 속성 HTML 입력 필드

<input type="text" valrule="someregexstring" /> 

예를

를 들어 단순히 속성이라고 valrule를 포함하는 모든 요소를 ​​선택하고 정규식 문자열을 구문 분석하는 jQuery를 사용합니다.

프로그래밍 표준 및 모범 사례가 적용되는 한 '중단'입니까? 이 같은 새로운 속성

답변

6

접두어 data-<myAttribute>을 사용해야합니다. HTML5에서 지원되며 다른 브라우저에서는이를 무시하고 .data() 메서드를 사용하여 jQuery로 쉽게 액세스 할 수 있습니다.

<input id="myInput" type="text" data-MySuperMassiveAttribute="Awesome"/> 

그리고 당신과 같이 그 정보를 검색 할 수 있습니다 : HTML5를 아직 지원하지 않는

var howAmI = $('#myInput').data('MySuperMassiveAttribute'); 
alert(howAmI); // now everybody knows how awesome you are ;-) 
+0

jQuery 예제에서 +1. – Antti29

3

사용 HTML5 데이터 - 접두사 : 저는 개인적으로 그렇게 할 것

http://ejohn.org/blog/html-5-data-attributes/

+0

및 브라우저를? 그들은 그 속성을 단순히 무시할 것인가? –

+1

그냥 무시할 것입니다 ... 요점은 HTML 5에 유효합니다. –

+2

예, jquery data() 함수를 호출하여 해당 값을 가져올 수 있습니다. '

' 'var baz = $ ('div'). 데이터 ('foo'); ' – websymphony

0

<input type="text" data-valrule="someregexstring" /> 

그것의 유효 HTML 5 ... 일부 브라우저는 HTML을 구문 분석 할 때 "존재하지 않는"속성을 무시하므로 이러한 속성은 브라우저 페이지 DOM에 저장되지 않습니다. jQuery 선택기가 실행될 때이 속성을 찾을 수 없습니다.

HTML5 호환 브라우저에서 실행할 수 있다면 HTML5 data- 접두어를 속성에 사용할 수 있습니다 (예 :

<input type="text" data-valrule="someregexstring" /> 

그러나 이전 브라우저에서 실행하면 여전히 작동하지 않을 수 있습니다. 예를 들어, 거의 절반의 고객이 업그레이드 할 계획이없는 IE7을 사용하고 있습니다 (정부의 속도로 이동).

+2

무엇을 무시하나요? "존재하지 않는"속성에 문제가 발생하지 않았고 HTML - 5에서 data- *가 유효합니다! – gdoron

+0

나는 이것이 확실히 일어날 것이라고 말하지 않았다. 나는 단지 "존재하지 않는"속성에 대한 동작이 이전 브라우저에서 정의되지 않았 음을 지적했습니다. –

+0

@gdoron - "data- *는 HTML <5"에서 유효합니다. 어디서 났어? – Alohci

2

확실히 할 수 있습니다. HTML5에서는 데이터 - 속성을 도입했지만 표준 방식으로 비표준 속성을 요소에 설정할 수있었습니다. 이것은 HTML5에 도입되어 있지만

당신은 단순히 당신은 여전히 ​​HTML4에 대한 문서를 사용할 수 data-

<input type="text" data-valrule="someregexstring" /> 

와 속성 이름을 접두사. 또는 .attr()를 통해 - jQuery를이 (1.4.3+)는 데이터 - 속성이 .data() 액세스 할 수 있습니다 사용


.

관련 문제