2011-11-22 2 views
4

링크를 취소하고 각 링크에 추가 속성을 추가하고 싶습니다. 아래는 어떻게 달성 했는가입니다.맞춤 속성을 사용하고 있습니까?

function anularEnlaces(){ 
    $('nav a').each(function(){ 
     var href = $(this).attr('href'); 
     var id = $(this).attr('id'); 
     $(this).attr('href','javascript:void(0)'); 
     $(this).attr('hrefnot',href); 
     $(this).attr('nivel','uno'); 
     $(this).attr('seccion','dos'); 
    }); 
} 

제 질문은 올바른/권장 방법으로 맞춤 속성을 추가하는 것입니까?

HTML5 Custom Data Attributes (data-*)

을하고 당신이 그들을 읽고 수정하는 jQuery의 $.data를 사용할 수 있습니다 유효한

답변

7

아니야. 당신이 데이터를 저장할 필요가없는 경우

<a href="somewhere.html" data-hrefnot="something">A link</a> 

:

$(this).data("hrefnot", href); 

그리고 HTML : 당신은 HTML5의 문서 타입을 사용하는 경우는 사용 후 jQuery를 data 방법을 새로운 data-* 속성을 사용하고 있습니다 귀하의 태그가 처음에는 HTML5 doctype을 사용하는지 여부는 중요하지 않습니다 (jQuery의 data 메소드는 여전히 작동 함).

+0

포함하지만 난 이렇게하면 나는 볼 수 없습니다 firebut의 현재 값. 그게 정상인가요? –

+0

예, 정상입니다. jQuery는'data'를 내부적으로 저장합니다 (HTML5 doctype을 사용하지 않는다면 여전히 유효한 마크 업을 갖습니다). –

3

당신이 HTML5를 사용하는 경우, 당신은 사용자 정의 데이터 data-를 속성을 추가 할 수 있습니다.

2

아니요. 사용자 정의 요소 속성 대신 data()을 사용해야하고 표준 html 속성의 경우 attr() (또는 더 나은 경우는 prop())을 사용해야합니다. 데이터의


예() 사용은 :

<a hred="some/url" data-custom="value">test</a> 

// getter 
var customValue = $('a').data('custom'); 
var customUndefined = $('a').data('testing'); 

지금 customValue는 "값"문자열을 포함하고 customUndefined은 정의되지 않은

// setter 
$('a').data('custom', 'test'); 
$('a').data('testing', true); 
관련 문제