2010-04-20 2 views
0

동적 jquery 스크립트로 단일 제출을 만들고 싶지만 작동하지 않습니다. 코드에 어떤 문제가 있습니까?jquery dynamic stracture with Equq

$(document).ready(function(){ 

    $("#foo").each(function(i) 
    { 

     $("button#foo").eq(i).click(function() 
      { 
       var a = this.val(); 
       alert(a); 
      }); 
    }); 

}); 

<div id="tabs-1"><input type="type" value="one"><button id="foo"></button></div> 

<div id="tabs-2"><input type="type" value="two"><button id="foo"></button></div> 

<div id="tabs-3"><input type="type" value="tree"><button id="foo"></button></div> 

덕분에 문제는 당신이 ID를 반복되어있다

+1

IDS 모든 요소에서 고유해야 –

답변

2

var a = this.value; 

값이

이 jQuery를에

당신이

$(this).val() 

당신의 전체 코드는 다음과

$(document).ready(function(){ 
    $("#foo").click(function(){ 
     var a = this.value; // or you can use $(this).val() 
     alert(a); 
    }); 
}); 
과 같이해야 사용할 수있는 특성이 아닌 방법으로 시도

모든 버튼에 클래스 이름을 지정하고 클릭 이벤트를 할당하려면 클래스 선택기를 사용하십시오. 버튼 ID를 변경하십시오. ID는 문서에서 고유해야합니다.

$("button.btnclass").click(function(){ 
    // to get the value of the input previous to the current button element 
    var val = $(this).prev().val(); 
    alert (val); 
}); 

Working Demo

두 번째 편집

$(function(){ 
    $("button.btnclass").click(function(){ 
    var currentElem = $(this); 
    var val = currentElem.prev().val(); 
    var id = currentElem.attr("id"); 

    switch(id) 
    { 
     case "foo1" : alert("ajax1"); 
        break; 
     case "foo2" : alert("ajax2"); 
        break; 
     case "foo3" : alert("ajax3"); 
        break; 
    } 
    }); 
});​ 
+0

하지만 rahul 어떻게 그 button.1 또는 2를 클릭 결정합니까? if (button1 클릭) { ajax get; } else { ajax get 2; } – mapet

+0

편집 내 대답 – rahul

+0

당신은 그것을해야 돼 .. rahul 덕분에 많이 ^^ – mapet

1

을 mapet. ID는 고유해야합니다. 또한 당신이하는 일은별로 의미가 없습니다. 무엇을 성취하려고합니까?

+0

나는 동적으로 원하는 다른 콘텐츠와 탭을 가질 수 있도록 내 코드는 중복되지 않습니다 .. 처럼 ..(function #) { \t ... 1 }); $ ("# foo2") 클릭 (function() { \t 콘텐츠 ... 2 }); $ ("# foo3") 클릭 (function() { \t 내용 ... 2 }}); – mapet