Замена элемента с помощью jQuery - PullRequest
1 голос
/ 17 января 2012

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

<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.

Ответы [ 4 ]

4 голосов
/ 17 января 2012

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

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

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

$('a').click(function(e) {
   myFunction(2);
})
1 голос
/ 17 января 2012

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

$('a').click(function(){
    myFunction($(this).text());
});
0 голосов
/ 17 января 2012

Значение якоря можно использовать для передачи значения в функцию 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>
0 голосов
/ 17 января 2012

Хорошо предположив, что вы предпочитаете использовать обработчик кликов, а не заменять весь свой тег привязки, взгляните на это. Единственное, что вам нужно сделать, это 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...