2014-08-29 6 views
0

그래서 요소를 복제하고 data을 추가했습니다. 이제 그 복제 된 요소를 data attribute으로 선택해야합니다. 문제는 data attribute을 기반으로 복제 된 요소를 찾을 수 없다는 것입니다. 어떤 아이디어? 여기 jQuery를 사용하여 데이터 속성별로 복제 된 요소를 선택하십시오.

이 작동하지 않는 바이올린 http://jsfiddle.net/fjckls/hho6k86a/

입니다 :

var clone = $(".clone").clone(true); 
clone.html("this is clone") 
clone.data("info", "this-is-clone"); 
$(".clone-holder").append(clone); 

// nothing is selected 
var cloned = clone.find("[data-info='this-is-clone']"); 
cloned.css("color", "red") 

@fjckls를 그냥 해결 방법입니다 대신 데이터의 속성을 사용함으로써, 는 이유를 설명하지 않는 코드가 작동하지 않습니다. 코스의 이러한 종류의 답변은 커뮤니티를 훨씬 도움이되지 않습니다. - 국왕

나는 순간 @Hendra 임 대답을 수락 - 그리고 나는 그것의 해결 방법의 종류 이해 - data 속성을 사용하는 대신 새로운 사용자 지정 특성을 생성하지. 내 시나리오에서 누군가가 data을 사용하는 "적절한"해결책을 갖고 있다면 허용 된 대답을 재고 할 것입니다. 당분간은 그것이 작동하기 때문에 나는 그것이있는 곳을 떠날 것이다.

+0

'clone.find'를'$ (".clone-holder")로 변경하십시오. find' – CompanyDroneFromSector7G

+0

@bukko 아니요, 작동하지 않습니다 – fjckls

답변

0

이 시도 :

var clone = $(".clone").clone(true); 
clone.html("this is clone") 
clone.attr("info", "this-is-clone"); 
$(".clone-holder").append(clone); 

var cloned = $(".clone-holder").find("[info='this-is-clone']"); 
cloned.css("color", "red") 
여기

here

가 대신 u는 복제 된 요소를 찾기 위해 무엇을 유 잘못 할 것은, u는 ".clone"요소 내부 복제 요소를 찾으려고하는 작업 예를하다 ".clone-holder"요소에 clone 요소를 추가하십시오. clone.data를 clone.attr로 바꿉니다.

+1

미니 설명 :'.data'를 사용하면 jQuery 자체의 값을 저장합니다. 명명 된 데이터 저장소. 'data- *'속성을 사용하는 것은 단순한 HTML 속성 일뿐입니다. 그러므로'clone.find ("[data-info = 'this-is-clone']")'를 사용하면 실제로'data-info' html 속성을 찾고있다. – Mysteryos

+0

감사합니다. – fjckls

+0

@fjckls 데이터 대신 속성을 사용하는 것으로 해결되었지만 코드가 작동하지 않는 이유는 설명하지 않습니다. 물론 이런 종류의 대답은 지역 사회를 훨씬 돕지 못할 것입니다. –

관련 문제