Почему jQuery удаляет то, что находится в моем DIV, и как мне остановить это? - PullRequest
1 голос
/ 06 декабря 2011

Вот некоторый код, который у меня есть в моем файле sandbox.php:

  <div class="jq">
    <img class="active" id="also" alt="Fifty-Fifty?" src="http://placehold.it/350x150"/>
  </div>
  <div id="title">
    This is the alt element of the 350x150 image, found by class.  It should return 'Fifty-Fifty?':
    <script>
      $("#title").text($('.jq .active').attr('alt'));
    </script>
  </div>

Итак, я просто пытаюсь выяснить, почему "Это элемент alt ..." очищается,и я хочу знать, как этого избежать.На самом деле я не чувствую, что мне нужен div 'title'.Я чувствую, что могу просто добавить текст в раздел 'jq'.

Может ли кто-нибудь объяснить, почему люди также структурируют документы?Я смотрю на код для StackOverflow, и они помещают все ссылки в свои hlinks-custom -id div в этом div.Якоря делают его очень четким структурным разделителем, и больше ничего не требуется.Перейдите на YouTube.com, и вы увидите, что у каждой ссылки на странице есть свой div.Разве это не кажется странным?

Ответы [ 5 ]

2 голосов
/ 06 декабря 2011

Я бы использовал .append(), вот так:

$("#title").append($('.jq .active').attr('alt'));

Вот JSFiddle.

2 голосов
/ 06 декабря 2011

Потому что вы заменяете, а не добавляете. Попробуйте:

var $t = $("#title");
$t.text($t.text() + $('.jq .active').attr('alt'));
1 голос
/ 06 декабря 2011

Метод .text(value) устанавливает содержимое div равным value. Поэтому то, что было в div раньше, удаляется, чтобы освободить место для нового контента.

Вместо этого вы можете использовать метод .append(value). Добавляет значение в конец содержимого div.

1 голос
/ 06 декабря 2011

Вы устанавливаете текст заголовка div, так что вы можете очистить его и установить снова. Вы ищете функцию jquery append () .

<script>
    $("#title").append($('.jq .active').attr('alt'));
</script>
1 голос
/ 06 декабря 2011

Это должно решить вашу проблему -

    <script>
      $("#title").text($("#title").text() + $('.jq .active').attr('alt'));
    </script>

Функция text заменит все текстовое содержимое в пределах выбранного элемента.Поэтому вам нужно добавить исходный текст к тексту, который вы хотите добавить, а затем передать все это в функцию text.

...