2014-06-09 4 views
-2

자바 스크립트가있는 클래스 이름의 버튼을 표시하는 루프가 있습니다. 클릭 한 범위의 ID를 전달해야합니다. 내 문제는 거기에 루프 때문에 색인에 의해 ID를 얻을 수 있지만 내가 얻고 싶은 것은 동적으로 클릭 한 단추의 ID입니다.자바 스크립트를 사용하여 요소 값을 동적으로 전달합니다.

while(...){ 
    <span class="id">'.$table["id"].'</span> 
    <input type="button" class="edit" value="Edit"/> 
    } 


$('.edit').on('click', function (e) { 
    var x=document.getElementsByClassName("id")[0]; 
    var xx = x.innerHTML; 

     $.fancybox({ 
      ... 
     } 
     }); 
}); 
+0

내가 볼 수있는 것처럼 버튼에는 ID가 없습니다. 너는 스팬 텍스트 값을 원해, 그렇지? 또한 이미 jquery (순수 j가 필요 없음)로 요소에 쉽게 액세스 할 수 있습니다. – sinisake

답변

0

단지 $(this)을 사용할 수 있습니까? 클릭 이벤트 내에서? 당신은이 작업을 수행 할 필요가 없습니다 : 당신이 거기 당신의 요소에 이미 때문에

var x=document.getElementsByClassName("id")[0]; 

그냥

var x = $(this); 

말, 클릭 이벤트가 발생하면.

희망이 있습니다. :)

1

VAR X = $ (이) .closest ("범위")를 사용하려면 같은 소리;

클릭 한 버튼 옆에 스팬이 있어야합니다.

+0

그 값은 단지'[object Object]'입니다. – user3384012

+0

끝에 텍스트 추가()를 추가하려고합니다. – sinisake

0

나는 변수를 전달하기 위해 data attributes과 함께 갈 것이므로 CSS 스타일 용 클래스 만 남겨 둘 수 있습니다. 또한 이미 jQuery를 사용하고 있다면 왜 그걸 가지고 가지 않을까요?

while(...){ 
<span class="id" data-id="id">'.$table["id"].'</span> 
<input type="button" class="edit" value="Edit" data-target="id"/> 
} 


$('.edit').on('click', function (e) { 
    var data = $(this).data('target'); // Get the data-target attribute 
    var target = $('*[data-id='+data+']'); // Find the matching span 
    var xx = target.html(); // Get HTML from Span 

    $.fancybox({ 
     ... 
    } 
    }); 
}); 
+0

감사합니다. 나는 이것을 시도했지만, 여전히 버튼의 값이 아닌 첫 번째 값을 얻는다. – user3384012

관련 문제