页面加载后如何找到一堆元素并将它们重新组合到新的 div 中?

发布于 2024-12-03 20:43:08 字数 403 浏览 0 评论 0原文

所以是的,我的头很痛。我的目标是:

我有从页面内的 php 动态生成的内容,例如,我使用 PHP include 来获取内容。现在,一旦该内容加载完毕,我希望使用 javascript/jQuery 来通过 ID 查找某些元素,看看是否有多个元素,如果有,则将它们分组到一个新的 div 中。

例如;我有一个名为“pony”的 div,该页面还有 3 个其他 div,也名为“pony”,使用 javascript/jQuery 我希望将它们放置在一个名为“horse”的新 div 中,该新 div 将即时生成。我还应该说新的 div 必须在页面顶部生成。

但我有一个名为“cows”的 div,而且只有一个,我希望 js/jQuery 忽略那个。

有谁知道该怎么做?相反,如果 PHP 更容易,那么我也欢迎了解这方面的知识。

So yes, my head hurts. What i aim to achieve:

i have content that is generated dynamically from php inside a page, eg, i use a PHP include to fetch content. Now once this content has loaded, i wish to use javascript/jQuery in order to find certain elements by ID, see if theres more than one, if there is, then group them in a new div.

For example; i have a div named 'pony', the page has 3 other divs, also named 'pony', using javascript/jQuery i wish to house them in a new div named 'horse' which will be generated on the fly. I should also say the new div has to be generated at the top of the page.

But i have a div named 'cows' and there is only one, i want js/jQuery to ignore that one.

Does anyone know how to do this? Rather if PHP would be easier, then id welcome the knowledge of that too.

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

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

发布评论

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

评论(2

梦初启 2024-12-10 20:43:08

多个元素具有相同的 ID 是无效的。

但是,如果您无法避免它,请尝试使用如下内容:

$(function(){
    var ponies = $("[id='pony']");
    if(ponies.length > 1){
        $("<div id='horse' ></div>").prependTo("body").append(ponies);
    } 
});

Having mutliple elements with same ID is not valid.

However if you cannot avoid it, then try using something like this:

$(function(){
    var ponies = $("[id='pony']");
    if(ponies.length > 1){
        $("<div id='horse' ></div>").prependTo("body").append(ponies);
    } 
});
我的奇迹 2024-12-10 20:43:08

如果您使用类来定义前面的 div,则可以使用 $(".pony") 选择器来计算动态生成的 div 数量,然后创建一个名为“horse”的新 DOM 元素并附加前面的 pony divs 如下:

$(function() {
    var listPony = $(".pony");

    if (listPony.length >= 3)
    {
        var newDiv = $("<div class='horse'></div>").append(listPony);
        $('body').prepend(newDiv);
    }
});

完整示例在这里:

http://jsfiddle.net/CPAfA/

If you use a class to define the previous divs, you can use the $(".pony") selector to have a count of the number of divs generated dynamically, then create a new DOM element called 'horse' and append the previous pony divs to it as such:

$(function() {
    var listPony = $(".pony");

    if (listPony.length >= 3)
    {
        var newDiv = $("<div class='horse'></div>").append(listPony);
        $('body').prepend(newDiv);
    }
});

Full example here:

http://jsfiddle.net/CPAfA/

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