2016-11-23 1 views
0
var lightcount = 0;   
    $("#addlight").click(function(){ 
     var domElement = $('<div id="L' + lightcount +'" class="col-md-3 col-sm-6 text-center"><div class="rumbox"></div><button id="onoff" type="button" class="btn btn-md btn-success"> ON </button></div>'); 
     var lid= $(domElement).attr("id"); 
     console.log(lid); 

     $(lid).after(domElement); 
     lightcount++ 
    }); 

버튼을 클릭 할 때 새 라이트 박스를 만드는 기능이 있습니다. 새로운 라이트 박스를 현재 라이트 박스 뒤에 배치하고 싶습니다.참조로 사용할 때 Id 변수가 작동하지 않습니다.

나는 모든 새로운 라이트 박스에 대해 증가되는 div id에 대한 변수를 가지고 있습니다.

대신 $("#L3").after(domElement) (실제 작동) 대신 내 변수 lid : $(lid).after(domElement);을 사용하고 싶습니다. 그러나 이것은 작동하지 않습니다.

+0

'$ (domElement)'내가 domElement 이미 난 당신이 실제 DOM에 domElement 변수에 "DIV"를 첨부해야한다고 생각 JQuery와 객체 –

+0

그대로 $가 필요하다 생각하지 않습니다. after() 함수를 호출 해보십시오. – shan

+0

그 시간 $ (뚜껑)도 dom에 없기 때문에 추가해야합니다. –

답변

1

은 먼저 DOM에 추가하고 기능 후를 사용해야합니다. 뚜껑은 그 앞에 "#"를 붙이는 데 필요한 id 값만 가질 것입니다.

var lightcount = 0;   
    $("#addlight").click(function(){ 
     var domElement = $('<div id="L' + lightcount +'" class="col-md-3 col-sm-6 text-center"><div class="rumbox"></div><button id="onoff" type="button" class="btn btn-md btn-success"> ON </button></div>'); 

     //Add it to dom . Change the id 
     $("#test").append(domElement) 

     var lid= $(domElement).attr("id"); 
     console.log(lid); 

     $("#"+lid).after(domElement); 
     lightcount++ 
    }); 
+0

추가 할 이유가 무엇입니까? OP는 @ $ ("#"+ lid) .after (domElement); ' – Rayon

+0

$ (domElement) .attr ("id")는 "# L0"이 아닌 "L0"을 반환합니다. ID 선택기로 사용하려면 '#'을 앞에 붙여야합니다. – selvassn

+0

그건 다른 이야기입니다. 삭제 된 첫 번째 답변은 같은 것을 언급했습니다 ... 나는 '추가'작업에 대해 묻습니다. 왜 우리가 그걸 필요로합니까? – Rayon

1

당신이 시도 할 수 :

$("#" + lid).after(domElement); 
+3

방금 ​​방금 요소를 만들었습니다, 그는 DOM에 그것을 삽입하지 않았습니다. 따라서 셀렉터는 아무 것도 반환하지 않습니다. –

+0

@RajaprabhuAravindasamy - 왜 DOM에 추가할까요? – Rayon

관련 문제