2015-10-07 6 views
0

Привет, у меня есть несколько кнопок, сгенерированных с помощью JQuery. Теперь я получил бы значение только с нажатой кнопки.jquery value from clicked object

Но как я могу получить значение, я всегда получаю чистый массаж. ниже вы можете увидеть соответствующий код.

Надеюсь, кто-то может мне помочь.

$(document).ready(function(){ 
    var count=1; 
    var nr=0; 
    var pfad=[]; 
    $.ajax({ 
     method:"post", 
     url:"phpcode.php", 
     data:{func:"bilder"}, 
     success:function(data){ 
      var arr=[]; 
      images=data.split(";"); 
      länge=images.length; 
      for(i=0;i<länge;i++){ 
       arr[i]=data.split(";")[i]; 
      } 
      arr.pop(); 
      generate(arr); 
     } 
    }); 
    function generate(arr){ 
     länge=arr.length; 
     for(i=0;i<länge;i++){ 
      if(i<1){ 
       $("main").append("<div value="+count+" class='pfade'><a>bild"+count+":</a><input name='bild' value="+arr[i]+" placeholder='pfad' type='text'/><button class='button' data-count="+count+" type='button'>X</button></div> "); 
      count=count+1; 
      } 
      else{ 
       $("main").append("<div value="+count+" class='pfade'><a>bild"+count+":</a><input name='bild' value="+arr[i]+" placeholder='pfad' type='text'/><button class='button' data-count="+count+" type='button'>X</button></div> "); 
       count=count+1; 
      } 
     } 
    } 

    $("#del").click(function(){ 
     val=count-1; 
     $("div[value="+val+"]").remove(); 
     count=count-1; 
    }); 

    $(document).on("click",".button",function(){ 
     val=$(this).attr("data-count"); 
     alert(val); 
    }); 

    $("#more").click(function(){ 
     $("main").append("<div value="+count+" class='pfade'><a>bild"+count+":</a><input name='bild' value='' placeholder='pfad' type='text'/><button class='button' data-count="+count+" type='button'>X</button></div> "); 
     count=count+1; 
    }); 
    $("#sub").click(function(){ 
     var pfad=[]; 
     $("input[name='bild']").each(function(){ 
      if($(this).val()!= ""){ 
       pfad.push($(this).val()); 
      } 
     }); 
     alert(pfad); 
     $.ajax({ 
      url: "phpcode.php", 
      method: "POST", 
      data:{func:"addimg"}, 
      success:function(data){ 
      } 
     }); 
    }); 
}); 

здесь изображение просто forHere этого изображения показывает, что кнопка действительно имеет значение: button with value

+0

Конечно, но это не поможет вам, потому что кнопка создается в коде JQuery. '

' – Caststupider

+0

где вы вызываете 'генерировать)' функцию (.? –

+0

обновленный пост выше всего кода – Caststupider

ответ

1

Там нет ничего плохого с кодом Помимо того, что кнопка имеет не атрибут значения , Чтобы получить текст, отображаемый с помощью кнопки в качестве значения вы должны использовать:

val=$(this).text(); 

вместо:

val=$(this).val(); 

Если вам нужно передать некоторые другие значения с помощью кнопки, которую вы должны использовать data- * attributes. Меняем value= в кнопке с data-count=

<button class='button' data-count="+count+" type='button'>X</button> 

, а затем получить значение с:

val=$(this).attr('data-count'); 

Ваш код работает для элементов формы, которые поддерживают значение атрибута.

+0

спасибо, что это именно то, что мне нужно. Я не знал, что кнопка не поддерживает атрибут value. – Caststupider

+0

Измените $ (this) .attr ('data-count') на $ (this) .data ('count') для лучшей масштабируемости. – RGS

+0

Да. Это еще лучше –