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



下面是我在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元素…"被擦除,我想知道如何防止这种情况发生。实际上我不觉得我需要一个'title'div,我觉得我可以把文本附加到'jq'部分。

谁能解释一下为什么人们也会过度结构化文档?我在看StackOverflow的代码,他们把所有的链接在他们的hlinks-custom -id的div在那个div。锚使它非常清晰的结构分隔符,它似乎不需要更多的东西。但是,去YouTube.com,你会看到页面上的每个链接都有自己的div。这看起来不奇怪吗?

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

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

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

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

这应该能解决你的问题-

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

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

您正在设置标题div的文本,因此您可以清除它并再次设置它。你正在寻找jquery的append()函数

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

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

您可能需要使用.append(value)方法来代替。它将值附加到div内容的末尾。

相关内容

最新更新