2010-02-01 87 views
2

只是试图替换超链接文本,我没有找到一种方法来做到这一点...我尝试了下面的代码,但是,我得到一个语法错误?jquery :::替换超链接文本?

编辑

<script type="text/javascript"> 
    var $j = jQuery.noConflict(); 
    $j(function() { 
     if($j("a").text() == "Contact") { 
      $j("a").text() = "Connect"); 
     } 
    }); 
</script> 

回答

9

你有一个额外的支架和分配是错误的。

if($j("a").text() == 'Contact') { 
    $j("a").text('Connect'); 
} 

代替

if($j("a").text() == 'Contact')) { 
    $j("a").text() == 'Connect'); 
} 

看起来像您刚才复制和条件粘贴代码,改变ContactConnect。小心一点。

+0

非常感谢! – phpN00b 2010-02-01 17:55:28

4
var $j = jQuery.noConflict(); 
$j(function() { 
    if($j("a").text() == 'Contact') { 
    $j("a").text('Connect'); 
    } 

}); 

上述修复你的语法问题,但在它的脸上代码才有意义,如果实际上只有一个链接本 - 附加$ J(“A”)将选择在DOM中的所有链接!你可能想要的是:

$j(function() { 
    //Replace hyperlinked 'Contact' texts with 'Connect' text 
    $j("a").each(function(){ 
    if($j(this).text() == 'Contact'){ 
    $j(this).text('Connect'); 
    } 
    }); 
1

你不文本分配给方法的结果,你把它作为一个参数传递给方法:

var $j = jQuery.noConflict(); 

$j(function() { 

    if ($j("a").text() == 'Contact') { 
    $j("a").text('Connect'); 
    } 

}); 
1

不能你只需要使用含有方法本身?

$("a:contains('Contact')").text('Connect'); 

我认为noconflict函数正在使用,因为在页面中调用多个jQuery版本?