找到一个具有某个类的div,并在它之前和之后添加一些HTML(使用PHP!)

时间:2013-11-18 19:19:42

标签: jquery html wordpress dom wordpress-theming

我遇到以下问题 - 如何找到“test”类的div,并在之前添加“</div>,在<}之后添加“<div class="sth"> / strong>它。 更多细节示例:

<!-- The original code -->
<div class="parent">
   ...here we can have some more content...
   <div class="test"></div>
</div>

<!-- The thing that I want to achieve -->
<div class="parent">
...here we can have some more content...
</div>

<div class="test"></div>

<div class="sth">
</div>

我尝试使用javascript / jQuery但没有成功,因为它是在DOM中生成的。 因此,在决定展示内容之前,我决定使用可以使用的内容。

任何想法如何完成?

(内容将由Wordpress帖子生成,如果这对您有帮助......)

P.S。抱歉我的英文不好

5 个答案:

答案 0 :(得分:1)

在正文标记</body>

结尾之前使用您的代码jsu
jQuery(document).ready(function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
$( ".test" ).insertAfter( ".parent" );
});

该包装将导致在完全构造DOM时执行代码。如果由于某种原因,您希望代码立即执行而不是等待DOM ready事件,那么您可以使用此包装方法:

    (function($) {
        // Inside of this function, $() will work as an alias for jQuery()
        // and other libraries also using $ will not be accessible under this shortcut
$( ".test" ).insertAfter( ".parent" );
    })(jQuery);

价:http://codex.wordpress.org/Function_Reference/wp_enqueue_script

http://jsfiddle.net/itsazzad/wW4Pv/1/

答案 1 :(得分:0)

我要做的是使用PHP Simple HTML DOM,获取您想要的<div>,然后追加其他代码。我认为这将是更简单的方法。

答案 2 :(得分:0)

你说你试过jQuery没有成功。但也许你想尝试这种成功的方法:

$('.test').wrap('<div class="sth"></div>');

当DOM准备好时,不要忘记执行它:

$(function() {
    $('.test').wrap('<div class="sth"></div>');
});

答案 3 :(得分:0)

使用Javascript:

var page = document.documentElement.InnerHTML;
document.documentElement.InnerHTML = page.replace("<div class=\"test\">","</div><div class=\"test\"><div class=\"sth\">");

答案 4 :(得分:0)

谢谢大家。我决定将整个内容复制为普通的html文本,而不是使用jQuery在加载简单的gif加载器时找到并替换我想要的东西。

这不是最好和最快的解决方案,但现在就像一个魅力: - )。

再次感谢。