JQuery ::: заменить текст гиперссылки? - PullRequest
2 голосов
/ 01 февраля 2010

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

EDIT

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

Ответы [ 4 ]

9 голосов
/ 01 февраля 2010

У вас есть одна дополнительная скобка, и назначение неверное.

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

вместо

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

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

4 голосов
/ 01 февраля 2010
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 голос
/ 03 марта 2011

Не могли бы вы просто использовать метод содержимого самостоятельно?

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

Я предполагаю, что функция noconflict используется из-за того, что на странице вызывается несколько версий jQuery?

1 голос
/ 01 февраля 2010

Вы не присваиваете текст результат метода, вы используете его как параметр для метода:

var $j = jQuery.noConflict();

 $j(function() {

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

 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...