JQuery 101 - Изменение значения текста - PullRequest
0 голосов
/ 09 февраля 2010

У меня есть ссылка, чтобы скрыть / отобразить текст:

<a href="javascript:void(0);" id="toggle_status_history">show/hide history<a/>

Соответствующий JavaScript выглядит следующим образом:

$(document).ready(function() {
  $('#toggle_status_history').click(function() {
    if ($('#status_history').is(":hidden")) {
      $('#status_history').slideDown("fast");
    } else {
      $('#status_history').slideUp("fast");
    }
  });

Отлично работает, но я бы тоже хотел переключить текст гиперссылки. Что мне нужно сделать, чтобы изменить «показать / скрыть историю», чтобы показать либо «скрыть историю» (если она отображается в данный момент), либо «показать историю», если она в данный момент скрыта? Как то так ..?

$(document).ready(function() {
  $('#toggle_status_history').click(function() {
    if ($('#status_history').is(":hidden")) {
      $('#status_history').slideDown("fast");
      // SOMETHING HERE TO SET TEXT TO 'HIDE HISTORY'
    } else {
      $('#status_history').slideUp("fast");
      // SOMETHING HERE TO SET TEXT TO 'SHOW HISTORY'
    }
  });

Отказ от ответственности: У меня менее часа опыта работы с JQuery (и я не использовал JavaScript с конца 90-х) - я просто пытаюсь изменить пример кода для своего сайта. Я посмотрел на API для функций toggle () и replaceWith (), но не работает. Поиск в Google и RTFM мне пока не помогли.

Ответы [ 5 ]

2 голосов
/ 09 февраля 2010
  $('#status_history').text("Whatever you want it to say");

Взгляните на документацию jQuery . У них очень хорошая документация, которая объясняет все, с примерами. Например, функция .text(str); находится под manipulation.

0 голосов
/ 09 февраля 2010
$(document).ready(function() {
  $('#toggle_status_history').click(function() {
   $('#status_history').toggle('slow')
   $("#toggle_status_history").text(($("#toggle_status_history").text()=='show')?'hide':'show');
}
});
0 голосов
/ 09 февраля 2010
$('#status_history').val("bla bla bla..");

попробуй это ... fn.val () получает значение input, select или значение или текст textarea;) fn.val (newValue) устанавливает новые значения;)

0 голосов
/ 09 февраля 2010

$('#status_history').text("Hide/Show History"); - это то, что вам нужно. Лучший способ сделать это - использовать метод toggle, предоставляемый jQuery, он принимает список функций, которые будут зацикливаться при каждом нажатии. Так что вам не нужно делать is(':hidden')

0 голосов
/ 09 февраля 2010
$('#toggle_status_history').text("Show history");
...