为什么jQuery会删除我的DIV中的内容,如何阻止它这样做呢?

时间:2011-12-06 14:01:19

标签: jquery dom text append attr

以下是我在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>

所以,我只想弄清楚为什么&#34;这是alt元素......&#34;得到擦洗,我想知道如何防止这种情况发生。我其实并不觉得自己需要一个“头衔”。 DIV。我觉得我可以将文字附加到&#39; jq&#39;部分。

有人可以解释为什么人们会过结构文件吗?我正在查看StackOverflow的代码,他们将所有链接放在他们hlinks-custom - id&#39; div中的div中。锚固件使其非常清晰的结构分离器,并且看起来不再需要任何东西。不过,请访问YouTube.com,您会看到页面上的每个链接都有自己的div。这看起来不奇怪吗?

5 个答案:

答案 0 :(得分:2)

因为你正在替换,而不是追加。尝试:

var $t = $("#title");
$t.text($t.text() + $('.jq .active').attr('alt'));

答案 1 :(得分:2)

我会使用.append(),如下所示:

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

Here is a JSFiddle.

答案 2 :(得分:1)

这应该可以解决您的问题 -

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

text函数将替换所选元素中的所有文本内容。因此,您需要将原始文本附加到要添加的文本,然后将所有内容传递给text函数。

答案 3 :(得分:1)

您正在设置标题div的文本,因此您可以清除它并重新进行设置。您正在寻找jquery append()功能。

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

答案 4 :(得分:1)

.text(value)方法将div的内容设置为value。因此,之前div中的内容被删除,以便为新内容腾出空间。

您可能希望使用.append(value)方法。它将值附加到div内容的末尾。