Передача переменных в jQuery из ссылок - PullRequest
1 голос
/ 07 октября 2010

Я переделываю страницу в разделе администрирования веб-сайта, которым я управляю, чтобы он использовал jQuery и AJAX. На одной из страниц у меня есть список предметов. Рядом с каждым элементом есть ссылка, которая выглядит примерно так:

<a href="delete.php?id=48" class="del_link">delete</a>

Если я назначу этим ссылкам класс, я могу легко применить функцию jQuery ко всем из них, но все они будут вызывать одну и ту же функцию одинаково. Мой вопрос: каков наилучший способ для функции получить идентификатор элемента, не включая JavaScript, встроенный в HTML?

Обновление: Спасибо всем за указатели. Я закончил тем, что использовал это:

$(".del_link").click(function(){
    var del_link = $(this).attr('href');
    $("#results").load(del_link, function (){
        $("#results").show().delay().fadeTo(2000, 0);
    })
})

php-файл, который вызывает ajax, реагирует по-разному, если он был запрошен ajax или обычно - если это ajax, он выводит ответ (например, «Элемент был успешно удален»), который может отображаться в div #results. Если у кого-то отключен JavaScript, клиент будет перенаправлен на ту же страницу php, но он будет перенаправлять их после удаления элемента.

Ответы [ 4 ]

7 голосов
/ 07 октября 2010

Быстро и грязно:

$('.del_link').click(function(){
    var id = $(this).attr('href').split('=')[1];
    // Do something with the ID here
});

Имейте в виду, , это не будет работать, если URL ссылки имеет более одного параметра строки запроса. В этом случае вам придется выполнить немного более сложный анализ значения attr('href').

2 голосов
/ 07 октября 2010

В HTML 5 вы можете использовать атрибуты данных. Что-то вроде

<a href="delete.php?id=48" class="del_link" data-id='48'>delete</a> 

и jQuery

$("a.del_link").each(function(){
   var id = $(this).attr('data-id');
});

Читать эта статья об атрибутах данных HTML 5

2 голосов
/ 07 октября 2010

ну, вы можете получить href достаточно легко:

var id = $('.del_link a').attr('href');

тогда просто разбери идентификатор.

0 голосов
/ 07 октября 2010

Когда вы добавляете обработчик onClick, ссылка будет this.

Проверьте атрибут href (используйте this.href) и проанализируйте идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...