요소의 모든 동적'데이터 속성'제거[중복]
-
26-12-2019 - |
문제
동적 데이터 속성이 일부 태그에 추가되는 디비전이 있습니다.(스크립트에 의해 동적으로 생성 될 데이터 속성의 이름,그래서 내 스크립트가 데이터 속성의 이름을 알 수있는 방법은 없습니다)
<div data-1223="some data" data-209329="some data" data-dog="some value"> </div>
이제 모든 데이터 속성과 그 값을 제거하여 디비전을 재설정하는 코드를 작성하려고합니다.
내가 사용할 수 있습니다
$('div').attr('data-209329',"")
그러나 문제는 내가 추가 될 데이터 속성의 이름을 모른다는 것입니다.추가 될 데이터 속성은 동적이며 나는 그것을 제어 할 수 없다.
사업부를 제거하고 사업부를 다시 삽입하는 것은 옵션이 아닙니다.도움말.사전에 감사
다른 팁
이 코드를 사용할 수 있습니다 :
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()
.