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

发布于 2024-12-19 22:26:13 字数 710 浏览 3 评论 0原文

这是我的 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。我觉得我可以将文本附加到“jq”部分。

有人可以解释为什么人们也对结构文档感兴趣吗?我正在查看 StackOverflow 的代码,他们将所有链接都放在该 div 的 hlinks-custom-id'd div 中。锚点使其结构分隔变得非常清晰,并且似乎不需要更多的东西。不过,转到 YouTube.com,您会看到页面上的每个链接都有自己的 div。这看起来不奇怪吗?

Here's some code I've got in my sandbox.php file:

  <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>

So, I'm just trying to figure out why "This is the alt element..." gets scrubbed, and I want to know how to keep that from happening. I actually don't feel that I need a 'title' div. I feel like I could just append the text into the 'jq' section.

Could someone explain why people over structure documents, also? I'm looking at the code for StackOverflow, and they put all of the links in their hlinks-custom-id'd div in that div. The anchors make it very clear structural separator, and it doesn't seem anything more is needed. Go to YouTube.com, though, and you'll see that every single link on the page has its own div. Does that not seem strange?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

花开半夏魅人心 2024-12-26 22:26:13

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

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

这是一个 JSFiddle。

I would use the .append(), like so:

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

Here is a JSFiddle.

乖不如嘢 2024-12-26 22:26:13

因为你是替换,而不是附加。尝试:

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

Because you're replacing, not appending. Try:

var $t = $("#title");
$t.text($t.text() + $('.jq .active').attr('alt'));
初吻给了烟 2024-12-26 22:26:13

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

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

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

This should fix you problem -

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

The text function will replace all text content within the selected element. So you need to append the original text to the text you want to add, then pass all of that to the text function.

合久必婚 2024-12-26 22:26:13

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

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

You are setting the text of the title div so you are in affect clearing it and setting it again. You are looking for the jquery append() function.

<script>
    $("#title").append($('.jq .active').attr('alt'));
</script>
北风几吹夏 2024-12-26 22:26:13

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

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

The .text(value) method sets the content of the div to the value. Therefore, what was in the div before is removed to make room for the new content.

You may want to use the .append(value) method instead. It appends the value to the end of the div's content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文