2011-12-24 2 views
0

Моя цель - вернуть текст тега привязки, щелкнув по нему. Я хочу, чтобы это было внутри функции не встроенной. Пример

function getText(){ 

alert($('this.a').text()); 

} 

Я знаю, что вышеуказанное не работает b/c Я попробовал.

Я не хочу, чтобы это было по id, потому что я хочу, чтобы он работал со всеми элементами «a» при нажатии. Когда я использую:

function getText(){ 

alert($('a').text()); 

} 

он возвращает ВСЕ текст в пределах ВСЕХ тегов 'a' на моей странице. То, что я пытаюсь выполнить, просто возвращает только текст привязанного тега, который я нажал. Я думаю, что это как-то связано с использованием $ (this) вместе с тегом 'a', но я не могу понять это.

Опять же, я хочу, чтобы эту функцию можно было использовать для всех тегов на моей странице без необходимости писать функцию для каждого идентификатора, поэтому я хочу использовать «это». Спасибо.

ответ

1

Вы просто хотите $(this).text():

function getText() { 
    alert($(this).text()); 
} 

И, конечно, вы должны быть обработку вашего мероприятия, как так:

$('a').click(getText); 
0

Это так же, как отдельную функцию, как это было бы с in inline one:

$("selector_for_the_anchors_in_question").click(clickHandler); 

function clickHandler() { 
    alert($(this).text()); 
} 

jQuery гарантирует, что при вызове обработчика this установлен на элемент, на который был подключен обработчик, и, конечно же, чтобы получить обертку jQuery для этого элемента, вы используете $() (или jQuery() в режиме noConflict).

0

Это JQuery достаточно:

$('a').click(function() { 
    alert($(this).text()); 
}); 

JSFiddle

0

Вы как-то привязать функцию к событию щелчка.

function getText(){ 
    alert($(this).text()); // `this` is the element clicked 
    return false; // prevent navigating 
} 

$("a").click(getText); // bind function to all <a> elements 

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