选择某个元素后面匹配ID的元素,如果不存在则创建

发布于 2024-12-02 17:09:01 字数 174 浏览 0 评论 0原文

<div id="foo">
  FOO
</div>

<div id="nextfoo"></div>

如何从 $('#foo').each()... 函数中选择 #nextfoo,如果它不存在则创建它?

<div id="foo">
  FOO
</div>

<div id="nextfoo"></div>

How can I select #nextfoo from a $('#foo').each()... function, and if it doesn't exist then create it ?

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

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

发布评论

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

评论(3

晌融 2024-12-09 17:09:01
var nextFoo= $('#nextfoo');
if (!nextFoo.length){
    nextFoo=$('<div id="nextfoo"/>').insertAfter('#foo');
}

你的意思是这样的吗?

var nextFoo= $('#nextfoo');
if (!nextFoo.length){
    nextFoo=$('<div id="nextfoo"/>').insertAfter('#foo');
}

you mean something like this?

窝囊感情。 2024-12-09 17:09:01

首先,id 在给定页面上应该是唯一的。因此不需要在 $("#foo") 上使用 each 循环,

您可以使用 jQuery next 方法来获取下一个元素(#nextfoo)。如果它不存在,那么您可以使用 jQuery after 方法插入它。试试这个

if(!$("#foo").next().is('#nextfoo')){
    $("#foo").after('div id="nextfoo" />');
}
else{//It exists
    var nextfoo = $("#foo").next();
}

First of all ids should be unique on a given page. So there is no need to have each loop on $("#foo")

You can use jQuery next method to get the next element(#nextfoo). If it is not present then you can insert it using jQuery after method. Try this

if(!$("#foo").next().is('#nextfoo')){
    $("#foo").after('div id="nextfoo" />');
}
else{//It exists
    var nextfoo = $("#foo").next();
}
荒人说梦 2024-12-09 17:09:01

正如其他人所说,每个 id 都应该是唯一的。因此,如果您希望重复这个结构......

<div class="foo"></div>
<div class="nextfoo"></div>

并且您在“foos”之后缺少一些“nextfoo”类,那么您可以执行如下操作:

$('.foo').each(function() {
    if (!$(this).next().hasClass('nextfoo')) {
        $(this).after('<div id="nextfoo">nextfoo 2</div>');
    }
});

这是一个实际演示

As others have said, every id should be unique. So if is this structure which you are looking to have repeated...

<div class="foo"></div>
<div class="nextfoo"></div>

... and you are missing some 'nextfoo' classes after your 'foos' then you can do something like the following:

$('.foo').each(function() {
    if (!$(this).next().hasClass('nextfoo')) {
        $(this).after('<div id="nextfoo">nextfoo 2</div>');
    }
});

Here is a demo of this in action.

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