2012-01-17 3 views
1

У меня есть вывод html в разделе подкачки, как это;Замена элемента с помощью jQuery

<p>&nbsp;<strong class="active">1</strong>&nbsp;<a href="http://localhost/project/report_nc/search_now/1">2</a>&nbsp;<a href="http://localhost/project/report_nc/search_now/2">3</a>&nbsp;<a href="http://localhost/project/report_nc/search_now/1">Next »</a>&nbsp;</p> 

Теперь мне нужно добавить атрибут «onclick» с помощью jquery. К сожалению, атрибут «onclick» не может быть установлен с помощью jquery. В то же время я придумал идею: взять один якорный тэг (т. Е. <a href="http://localhost/project/report_nc/search_now/2"></a>) и заменить его новым якорем (т. Е. <a href="javascript:void(0)" onclick="myFunction(2)"></a>).

Как мне сделать это с помощью jquery? Идея состоит в том, чтобы опубликовать форму, нажав на пейджинговые ссылки.

РЕШЕННЫЙ!

Спасибо всем за ваши добрые ответы ...... Я предполагаю, что в моем коде была небольшая ошибка; как я просматривал код, отправленный umesh, я заметил «onClick« ... да, я использовал «onclick» вместо «onClick». Теперь он работал в FF и, надеюсь, он будет работать и в IE.

+2

OnClick можно установить с помощью JQuery. Вы говорите, что не хотите этого делать или не знаете, как это сделать? '$ ('a'). click (function() {alert();});' – mrtsherman

+0

да, но я хотел, чтобы он был установлен в атрибуте onclick, чтобы он выглядел более справедливым и меньше javascript-кодов в страница также .... спасибо за ответ! –

ответ

0

Значение якоря может быть использовано, чтобы передать значение для функционирования myFunction. Если Anchor не содержит никакого значения, ничего не делайте.

Дрессировка код, как показано ниже:

<html> 
    <head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
    // Use Proper anchor selector on your page 
    $("a").each(function(){ 
     var no=$(this).html(); 
     if(!isNaN(parseInt(no))){ 
      $(this).attr("onClick","myFunction("+no+")"); 
      $(this).attr("href","javascript:void(0)"); 
     } 
     }); 
    }); 
    </script> 
    </head> 
    <body> 
    <p>&nbsp; 
    <strong class="active">1</strong>& 
    nbsp; 
    <a href="http://localhost/project/report_nc/search_now/1">2</a>&nbsp; 
    <a href="http://localhost/project/report_nc/search_now/2">3</a>&nbsp; 
    <a href="http://localhost/project/report_nc/search_now/1">Next »</a>&nbsp; 
    </p> 
    </body> 
    </html> 
4

вы можете использовать .replaceWith() так:

$('a').replaceWith('<a href="javascript:void(0)" onclick="myFunction(2)" />'); 

Хотя я бы рекомендовал смотреть в почему он это делает, вы не можете установить OnClick атрибут с помощью JQuery, если вы хотите связать событие щелчка, вы можете использовать .click()

$('a').click(function(e) { 
    myFunction(2); 
}) 
1

Попробуйте это в JQuery

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

Ну что делает предположение, что вы предпочли бы использовать обработчик кликов вместо замены всего тэга привязки, взгляните на это. Единственное, что вам нужно сделать: return false в событии click, чтобы навигационная система по умолчанию не возникала.

http://jsfiddle.net/2GgK3/

//if any link is clicked 
$('a').click(function() { 
    var clickedLink = $(this).prop('href'); //get its href 
    console.log(clickedLink); //output to console 
    return false; //prevent default navigation 
}); 

Вы также можете задать атрибуты непосредственно в JQuery. В jQuery 1.7+ используйте prop. В противном случае используйте attr.

$('element').prop('href', 'new href value'); 
Смежные вопросы