jquery .each() 循环

发布于 2024-11-19 09:32:59 字数 931 浏览 0 评论 0原文

我想阅读“.vm-video-title”-div 中的所有链接,并将它们分别发布在同一个 div 中。所以我制作了这个脚本:

$('.vm-video-title').each(function(i) {//all divs
    $(this).html($(this).html()+$("div.vm-video-title>a").text());//add to div the link
    });

但我有一个问题,它读取所有 div 的所有链接并将它们放在一个 div 中。

示例:

<div class="vm-video-title"><a href="...">Text1</a></div>
<div class="vm-video-title"><a href="...">Text2</a></div>
<div class="vm-video-title"><a href="...">Text3</a></div>

输出:

<a href="...">Text1</a>Text1Text2Text3
<a href="...">Text2</a>Text1Text2Text3
<a href="...">Text3</a>Text1Text2Text3

想要的输出:

<a href="...">Text1</a>Text1
<a href="...">Text2</a>Text2
<a href="...">Text3</a>Text3

i want to read all links in ".vm-video-title"-divs and post them each in the same div. So i made this script:

$('.vm-video-title').each(function(i) {//all divs
    $(this).html($(this).html()+$("div.vm-video-title>a").text());//add to div the link
    });

but i have the problem that it reads ALL the links of all divs and put them in one div.

example:

<div class="vm-video-title"><a href="...">Text1</a></div>
<div class="vm-video-title"><a href="...">Text2</a></div>
<div class="vm-video-title"><a href="...">Text3</a></div>

output:

<a href="...">Text1</a>Text1Text2Text3
<a href="...">Text2</a>Text1Text2Text3
<a href="...">Text3</a>Text1Text2Text3

wanted output:

<a href="...">Text1</a>Text1
<a href="...">Text2</a>Text2
<a href="...">Text3</a>Text3

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

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

发布评论

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

评论(3

扶醉桌前 2024-11-26 09:32:59

您可以直接选择 元素,并使用 after( )[docs] 方法将每个内容分别附加到每个内容之后。

$("div.vm-video-title > a").after(function() { return $(this).text(); });

这不会对现有元素进行“销毁然后重新创建”,例如 html()[docs] 方法将。

工作示例: http://jsfiddle.net/CCr9C/

You can select the <a> elements directly, and use the after()[docs] method to append the content of each after each one respectively.

$("div.vm-video-title > a").after(function() { return $(this).text(); });

This doesn't do a "destroy then recreate" of the existing elements like the html()[docs] method will.

Working example: http://jsfiddle.net/CCr9C/

流云如水 2024-11-26 09:32:59

这应该可以为您完成工作,

您需要在循环(el)中找到当前元素内的 div。

$('.vm-video-title').each(function(i, el) {
    el = $(el);
    el.html(el.html()+el.find("a").text());
});

在您的代码中,您将在 div 中添加所有匹配“a”标签的 text() (即 Text1Text2Text3)

This should do the job for you,

you need to find the div inside current element in the loop (el).

$('.vm-video-title').each(function(i, el) {
    el = $(el);
    el.html(el.html()+el.find("a").text());
});

in your code you are adding text() of all matching "a" tags in your divs (i.e. Text1Text2Text3)

各自安好 2024-11-26 09:32:59

你就快到了。而不是: $("div.vm-video-title").text(),它为您提供任何具有 vm-video- 类的 div 内的文本title,您需要在当前div内找到a标签并从中获取文本。我们将 this 作为 context 传递,用于在当前 div 中选择 a jQuery( 选择器, [上下文])

$('.vm-video-title').each(function(i) {//all divs
   $(this).html($(this).html()+$("a", this).text());
});

You were almost there. Instead of : $("div.vm-video-title").text(), which gives you text inside any div with class vm-video-title, you need to find a tag inside current div and get text from it. We pass this as context for selecting a inside current div jQuery( selector, [context] )

$('.vm-video-title').each(function(i) {//all divs
   $(this).html($(this).html()+$("a", this).text());
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文