2010-02-01 104 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版本?