在元素jquery或javascript中的一堆类上扫描指定的类

时间:2013-07-05 00:08:36

标签: javascript jquery

我有这个html结构

<body class="blog page current-page page-50452">

    <div class="content"></div>

</body>

我想扫描body元素中的类,然后如果在body元素中找到指定的类,那么将执行一个进程,概念如下:

//the jquery/javascript version..

var cc = $('body').find('.blog'); //this assume to find the blog class in the body element..

if ( if the blog class has found in the body element then..){

//this is the work that i want to implement, like, it add another div with class and contents after the <div class="content">

$('.content').after('<div></div>').addClass('pagination').html('hello');

}else{

// here if the blog class is not found in the body element.

}

正如你在上面的代码中看到的那样,它首先从body元素中获取所有类,然后在博客类存在的情况下扫描类,如果找到了blog类,那么它应该添加这个

<div class="pagination">hello</div>

之后

<div class="content">..

到目前为止,上面的代码不幸没有用,所以目前我正在寻找一些关于我的问题的解决方案,但到目前为止看起来很不幸。

请更正我的代码,我打开任何建议,建议和想法。谢谢!

4 个答案:

答案 0 :(得分:3)

尝试使用.hasClass()

if ( $("body").hasClass("blog") ){

使用.find(),您将获得由选择器过滤的身体后代,女巫不是您想要的

另外,要添加分页div,我建议:

$('<div>', {
    "class": "pagination",
    "html": "hello"
}).insertAfter('.content');

答案 1 :(得分:1)

尝试,例如:

if($('body').hasClass('blog')){
  $('.content').each(function(){
    $(this).after("<div class='pagination'>Hello!</div>");
  });
}

请参阅,

http://api.jquery.com/after/

了解更多信息。版本信息位于右侧的水平蓝色。

答案 2 :(得分:0)

我想你可以做到

if ($(" body .blog")){
//do stuff
}

这样,如果正文中没有元素.blog,则选择器将返回undefined,因此条件将为false。

答案 3 :(得分:0)

您可以使用$('body.blog').size()在课堂博客中测试身体。

如果您想避免使用if语句,可以尝试:

function AppendPagination() {
  ($('body.blog').size() > 0) &&
  $('.content').after("<div class='pagination'>hello</div>");
}

body.blog不存在时,这将短路执行。