2012-01-17 118 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> 

现在我需要使用jquery添加属性“onclick”。不幸的是,“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 2012-01-17 06:02:39

+0

是的,但我希望它被设置在“onclick”属性中,以便它看起来更公平,更少JavaScript代码该页面以及....感谢您的回应! – 2012-01-17 06:11:04

回答

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,这样就不会发生默认导航。

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