Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не могу получить значение при клике (https://javascript.ru/forum/jquery/64561-ne-mogu-poluchit-znachenie-pri-klike.html)

qumo 20.08.2016 22:09

Не могу получить значение при клике
 
Не могу получить значения из span'ов, когда клик происходит по дочерним элементам(span). При клике по родителю- получает, а по детям - нет:-?
<table>
<tbody>
  <? $data = 3; for($i = 0; $i <= $data; $i++) { ?>
    <tr>
	  <td class="block_td" id="block<?=$i?>"><span id="span1">первое<?=$i?></span> <span id="span2">второе<?=$i?></span></td>
    </tr>
  <? } ?>
</tbody>
</table>

$('.block_td').on('click', function(event){
		event = event || window.event;
		if(!event.target){
			event = event.srcElement;
		}
		number1 = $('#' + event.target.id + ' #span1').text();
		number2 = $('#' + event.target.id + ' #span2').text();
		console.log(number1+ ' ' + number2);
	});

рони 20.08.2016 22:42

qumo,
скрипт строки 2-5 ненужны. id не должно поторятся.

рони 20.08.2016 22:49

qumo,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
$('.block_td').on('click', function(event){
var text = $.map($('span',this),function(el) {
  return el.textContent
})
alert(text);
  });

});
  </script>
</head>

<body>
<table>
<tbody>

    <tr>
    <td class="block_td" ><span>первое</span> <span>второе</span></td>
    </tr>

</tbody>
</table>


</body>
</html>

qumo 20.08.2016 22:49

Привет, Роник=) Т.е. id у span тоже должны меняться?

рони 20.08.2016 22:50

qumo,
лучше класс или ничего

qumo 20.08.2016 22:55

Цитата:

Сообщение от рони (Сообщение 426226)
qumo,
лучше класс или ничего

Мдаааа, намудрил я в коде=))Спасибо огромное за помощь!=)

qumo 22.08.2016 13:38

Еще проблемка возникла. Не могу использовать объект place в myPlacemark, а если использовать так, как в коде ниже, то создается постоянно новый объект по клику. Как мне передать этот объект(place), чтобы не создавался новый объект myPlacemark?:-?
$(function(){
  $('.block_td').on('click', function(){
    var place = $.map($('span',this),function(el) {
      return el.textContent;
    });
    var myPlacemark = new ymaps.Placemark(place, 
    {
      balloonContent: 'Координаты: ' +place 
    }, 
    { preset: "islands#yellowStretchyIcon"
    });
    console.log(place);
    myMap.geoObjects.add(myPlacemark);
  });
});

рони 22.08.2016 14:45

qumo,
скорее всего надо документацию на карты смотреть, а сам обьект строки 6 и 13 вынести до клика.

qumo 22.08.2016 14:52

Я их выносил=) В доках можно координаты эти передать либо как у меня, либо [широта, долгота]. Но вот как сделать, чтобы мне не городить эти объекты? В Яндекс доках есть пример передачи координат фиксированных(которые не меняются динамически по клику), вот и пришлось делать динамичным, но не могу получить эти координаты из объекта так, чтобы не приходилось создавать вновь объект.

рони 22.08.2016 15:02

qumo,
на яндексе по картам есть форум, вам там нужно задать свой вопрос.


Часовой пояс GMT +3, время: 18:21.