2015-12-12 2 views
0

Привет Я пытаюсь получить текст «описания», чтобы поместить его в таблицу (затем, в конце концов, сделать то же самое с «prix»), есть много «предметов», поэтому я не может просто использовать идентификатор для каждого из них. до сих пор аварийный для Вала дают мне пустую в то время как я хочу «HP portatif»JQuery получить текст div в div

<div class="item" id="hp"> 
       <img class="imageItem" src=".\\produits\\portable1.jpg" /> 
       <div class="description">HP portatif </div> 
       <div class="prix">350.95</div> 
       <div class="ajouter" >Ajouter</div> 
      </div> 

$(".ajouter").click(function(){ 
      var val = $(this).children('div').text(); 
      alert(val); 
      $('<tr>').appendTo('#corpsTableau'); 
      $('<td>'+val+'</td><td><input type=\"text\" style=\"float:right\" /></td><td></td>').appendTo('#corpsTableau'); 
      $('</tr>').appendTo('#corpsTableau'); 
     }); 

ответ

2

Чтобы получить правильный текст, вы должны быть ориентированы на элемент, который выходит за рамки элемента, на котором запускается нажмите событие.

Нет. как вы можете это сделать.

Использование Jquery .siblings()

$(".ajouter").click(function(){ 
       var val = $(this).siblings('div.description').text(); // gets the siblings of the referenced element which has class 'description' 
       alert(val); 
      }); 

http://jsfiddle.net/s8jvoq2n/1/

Использование JQuery .parent()

$(".ajouter").click(function(){ 
      var val = $(this).parent().find('.description').text(); // gets the parent of the referenced element and then find the div which has class 'description' 
      alert(val); 
     }); 

http://jsfiddle.net/s8jvoq2n/2/

Использование JQuery .closest()

$(".ajouter").click(function(){ 
      var val = $(this).closest('div.item').find('.description').text(); // gets the closest occurring element of the referenced element with class 'item' and then find the div which has class 'description' 
      alert(val); 
     }); 

http://jsfiddle.net/s8jvoq2n/3/

+0

Works Great! спасибо – Blob

+0

Конечно. Рад помочь. – DinoMyte

0

Поскольку вы ориентируетесь детьми класса .ajouter, из которых их нет. вы можете просто предназначаться это нравится:

var val = $(this).text(); 

или

var val = $('.ajouter').text(); 
0

Проблема, как представляется, с селектором для "ВАЛ" , Попробуйте следующее:

var val = $(this).siblings('.description').text(); 

$ (это) относится к элементу, который вы нажали, div.ajouter. Затем мы рассмотрим всех братьев и сестер этого конкретного элемента для класса описания. Затем мы извлекаем текст из этого элемента.

0

В вашем случае, я думаю, что лучше использовать один вместо на https://jsfiddle.net/xx4dL68u/

Таким образом, вы будете добавлять название «элемент» в телеге только один раз.

$(".ajouter").one('click',function(){ 
    var description = $(this).siblings('.description').text(); 
    var corpsItem='<tr><td>'+description+'</td><td><input type="text" style="float:right" /></td><td></td></tr>'; 
    $('#corpsTableau').append(corpsItem); 
}); 
+0

Отредактировано много времени ... извините, мне нужно спать. – Vixed

Смежные вопросы