使用jQuery替换元素

时间:2012-01-17 05:59:32

标签: javascript jquery replace

我在这样的分页部分有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>

现在我需要使用jquery添加属性“onclick”。 BUt遗憾的是“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 个答案:

答案 0 :(得分:4)

你可以这样使用.replaceWith()

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

虽然我建议调查为什么它使你无法使用jquery设置onclick属性,如果你想绑定一个click事件,你可以使用.click()

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

答案 1 :(得分:1)

在jquery中尝试这个

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

答案 2 :(得分:0)

假设您更愿意使用点击处理程序而不是替换整个锚标记,请看一下。您需要做的唯一事情是点击事件中的return false,以便不会发生默认导航。

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');

答案 3 :(得分: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>