Передающие данные к щелчку jQuery () функция

У меня есть простой промежуток как так

<span class="action removeAction">Remove</span>

Этот промежуток в таблице, каждая строка имеет удалить промежуток.

И затем я называю URL с помощью Ajax, когда тот промежуток нажат. Событие AJAX должно знать идентификатор объекта для той строки? Каков лучший способ получить тот идентификатор в функцию щелчка?

Я думал, что мог сделать что-то вроде этого

<span class="action removeAction" id="1">Remove</span>

Но идентификатор не должен запускаться с числа?Правильно? Затем я думал, что мог сделать

<span class="action removeAction" id="my1">Remove</span>

Затем просто разделите 'мою' часть из идентификатора, но это просто кажется Гоготом!

Ниже мое событие щелчка и где мое событие AJAX.

<script type="text/javascript" language="text/javascript">

$(document).ready(function()
{

    $(".removeAction").click(function()
    {
        //AJAX here that needs to know the ID            
    }
});

</script>

Я уверен, что существует хороший способ сделать это?

Примечание: Я не ищу

$(this).attr("id");

Я хочу смочь передать больше чем одну информацию

Спасибо. Jake.

14
задан Jake N 10 May 2010 в 10:03
поделиться

5 ответов

Если вы настаиваете на использовании устаревшего HTML 4.01 или XHTML:

$('.removeAction').click(function() {
 // Don’t do anything crazy like `$(this).attr('id')`.
 // You can get the `id` attribute value by simply accessing the property:
 this.id;
 // If you’re prefixing it with 'my' to validate as HTML 4.01, you can get just the ID like this:
 this.id.replace('my', '');
});

Между прочим, в HTML5, атрибут id может начинаться с числа или даже быть число .

Опять же, если вы все равно используете HTML5, вам, вероятно, лучше использовать специальные атрибуты данных, например:

<span class="action removeAction" data-id="1">Remove</span>
14
ответ дан 1 December 2019 в 13:21
поделиться

$ (this) в вашей функции щелчка представляет собой выбранный элемент

$(".removeAction").click(function() {
    //AJAX here that needs to know the ID
    alert($(this).attr('id'));           
}
3
ответ дан 1 December 2019 в 13:21
поделиться

Следующий код получит ID нажатого span. Использование ID не идеально, но это сработает.

$(".removeAction").click(function() {
  alert($(this).attr("id"));
});
1
ответ дан 1 December 2019 в 13:21
поделиться

Вы можете попробовать jQuery.data(): http://api.jquery.com/jQuery.data , но это будет означать сгенерированный на стороне сервера js-код, который будет выполняться при загрузке страницы, чтобы вы могли сохранить идентификаторы для последующего повторного использования (ваше действие remove)

// this part would have to be server 'generated'
// and by that I'm referring  to the '<?=$row_id?>'
$('table .remove').each(function(){

   var MyElem = $(this);
   MyElem.data('id', <?=$row_id?> );

   MyElem.click(function(){
      the_id = $(this).data('id');
      // ajax call goes here
   });

});
0
ответ дан 1 December 2019 в 13:21
поделиться

У вас может быть скрытое поле в каждой строке, которое хранит идентификатор и / или другие данные, необходимые в объекте JSON, и использовать его вместо того, чтобы взламывать тег span.

<tr>
<td>
<span class="action removeAction">Remove</span>
<input type="hidden" value="1" />
</td>
</tr>

$('.removeAction').click(function(){
  var id = $(this).next().val();
  // do something...
});

HTH

1
ответ дан 1 December 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: