문제

동적 데이터 속성이 일부 태그에 추가되는 디비전이 있습니다.(스크립트에 의해 동적으로 생성 될 데이터 속성의 이름,그래서 내 스크립트가 데이터 속성의 이름을 알 수있는 방법은 없습니다)

<div data-1223="some data" data-209329="some data" data-dog="some value"> </div>

이제 모든 데이터 속성과 그 값을 제거하여 디비전을 재설정하는 코드를 작성하려고합니다.

내가 사용할 수 있습니다

$('div').attr('data-209329',"")

그러나 문제는 내가 추가 될 데이터 속성의 이름을 모른다는 것입니다.추가 될 데이터 속성은 동적이며 나는 그것을 제어 할 수 없다.

사업부를 제거하고 사업부를 다시 삽입하는 것은 옵션이 아닙니다.도움말.사전에 감사

도움이 되었습니까?

해결책

다음과 같이 사용할 수 있습니다

var data = $("div").data();

var keys = $.map(data, function (value, key) {
    return key;
});
for (i = 0; i < keys.length; i++) {
    $("div").removeAttr("data-" + keys[i]);
}

바이올린

편집

@모티에 의해 제안

$.each($('div').data(), function (i) {
    $("div").removeAttr("data-" + i);
});

데모

다른 팁

이 코드를 사용할 수 있습니다 :

var data = $('div').data();

for(var i in data){
    //for change 
    $('div').attr("data-"+i,"something");
    //for remove
    $("div").removeAttr("data-" + i);
}

$('div').data(); 모든 데이터 속성의 목록을 준비합니다. var data 변수그럼 당신은 그것으로 작업 할 수 있습니다.이건 이 솔루션의 바이올린.

업데이트 @모티에 의해 제안

 $.each($('div').data(), function (i) {
        //for change 
        $('div').attr("data-"+i,"something");
        //for remove
        $("div").removeAttr("data-" + i);
    });

나는 그 생각 removeData() 기능은 당신이 여기에서 찾고 있는 무슨입니다.이 모든 것을 제거합니다 data 요소에 저장된 정보.

그...제거데이터()방법은 우리가 이전에 사용하여 설정 한 값을 제거 할 수 있습니다.데이터().키의 이름으로 호출되면,데이터 제거()는 해당 특정 값을 삭제합니다; 인수 없이 호출하면 모든 값이 제거됩니다. 내부 데이터 제거.데이터()캐시는 문서의 데이터 특성에 영향을 주지 않습니다.;사용.제거()를 제거합니다.

그러나 실제 속성은 요소에서 제거되지 않습니다.실제 특성을 제거하려면 기존 특성 목록을 추출해야 합니다.당신은 검사하여이 작업을 수행 할 수 있습니다 data() 요소의 기능(실행 전 removeData).

data() 함수는 key => value 그런 다음 다음을 사용하여 요소에서 실제 특성을 제거하는 데 사용할 수 있는 쌍 removeAttr().

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top