2014-07-19 3 views
1

html/jquery 응용 프로그램을 만들 때 전역 변수를 사용하지 않고 값을 전달하는 데 문제가 있습니다. 간단한 예 비표준 속성 사용

1

)은 예컨대 "playersTable"로 클래스

2) "25"

3)으로 고유 ID를 첨부하여 테이블을로드 테이블의 행을 클릭 행 스폰 부모 클래스 및 ID를 기반으로 작업을 수행하는 버튼. 쿼리 플레이어 테이블과 같은 WHERE 행 = 25 등

문제는 내가 개발하는 동안 상위 요소 (또는 이미 클래스와 ID가있는 요소)에 더 많은 값을 연결해야한다는 것입니다. 클래스에 20 가지를 추가하지 않으려합니다.

더 많은 데이터를 요소에 첨부해야 할 때 어떻게해야할지 모르겠습니다. 나는 또한 "가치"라는 속성을 사용했지만, 모든 브라우저가 그것을 지원하는지 궁금하다. 나쁜 습관이라면 나는 궁금해한다. 예 :

<div id = "2" class = "test" myAttr = "foo"></div> 

아니면 일반적으로이 모든 잘못된 방법으로 가고 있습니까?

답변

3

당신이 그것을 구체적인 조언을 제공하기 어렵다 DOM 요소에 대한 모든 데이터를 첨부해야하는 이유 을 모른 채.

먼저, data- 속성을 사용하는 것이 좋습니다.

둘째, 동적으로 데이터를 첨부하는 경우 jQuery의 data() 메서드를 사용하는 것이 좋습니다.

셋째, 실제로 필요한 데이터와 시간을 고려해 볼 수 있습니다.

넷째, 아마도 가장 중요한 것은 ID 속성이 실제로 설정하고자하는 것이 아닐 것입니다.

data-id 요소를 사용하고 ID를 얻습니다. 간단한 숫자 값은 유효한 ID가 아닙니다. ID로 DOM 요소를 실제로 참조해야하는 경우가 아니면 왜 귀찮은가? 일반적으로 당신이 정말로 필요로하는 것은 가까운 계층 구조를 보거나 (또는 ​​아래로) 부모 행 등을 찾아 data("id")과 같은 단일 값을 추출하는 것입니다.

+0

고마워, 그게 내가 찾고 있었던거야. 그러나 내가 가진 한 가지 문제는 PHP의 데이터로 웹 페이지를 채우는 것입니다. Id 및 Class와 같은 데이터에 데이터를 첨부하는 것은 기본 키와 같은 것들을 html로 전송하여 jQuery를 사용하는 유일한 방법이기 때문입니다. – user3822370

+0

JavaScript에서 사용하기 위해 데이터 서버를 첨부하는 것은 HTML의 유스 케이스 데이터 속성을 위해 설계된 것입니다. https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes를 참조하십시오. – pwdst

2

순수한 JavaScript element.getAttribute('data-some_attr_name') 또는 jQuery element.data('some_attr_name')과 함께 data- * 속성을 사용하는 것이 좋습니다.

브라우저 지원 : http://caniuse.com/dataset

jQuery를 데이터 문서 : http://api.jquery.com/data/

+0

IE10과 다운 사용자가 멀어 질 것 같습니다. 부분 지원은 무엇을 의미합니까? – user3822370

+0

@ user3822370 데이터 속성은 JavaScript 데이터 세트 메소드가 아닌 Internet Explorer의 비추천 버전에서 작동합니다. getAttribute 또는 jQuery.attr() 메소드를 사용하면 정상적으로 작동합니다. – pwdst

+0

감사. 자바 스크립트 데이터 세트 메소드를 말할 때 더 정확하게 설명 할 수 있습니까? – user3822370