2010-02-01 2 views
2

Просто пытаюсь заменить текст гиперссылки, и я не нахожу способ сделать это ... Я пробовал код ниже, но я получаю синтаксическую ошибку?jquery ::: заменить текст гиперссылки?

EDIT

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

Похоже, вы просто скопировать и вставить код из условия и изменил Contact к Connect. Будьте осторожны с этим.

+0

Oof, спасибо большое! – phpN00b

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

}); 

Приведенные выше исправляет проблему синтаксиса, но на лице его код имеет смысл только если есть на самом деле только одна ссылка присутствует - $ J («а») будут выбраны все ссылки в 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 Называния на странице?

Смежные вопросы