0

我正在使用以下代码示例的组合来更改background-imagecss 值,具体取决于单独的元素是否包含文本字符串。

单独的元素多次出现在页面上(wordpress 发布元数据),所以这个 jQuery 应该在每次满足条件时运行。

$(window).load(function(){
if ($(".postmetadata").contains("Seattle")) {
        $(this).closest(".boxy").find(".storyNoIMG")
        .addClass('.seattleIMG');
    } else {
    }
});

这是我正在使用的第二个示例:

            var imageURL = "images/seattle.png";

            if ($(".postmetadata").contains("Seattle")) {
                $(this).closest(".boxy").find(".storyNoIMG")
                .css("background-image","url(" + "images/seattle.png" + ")");
            }

这是html上下文:

        <div class="boxy">
            <div class="boxGrad">

                <div class="postmetadata">
                    <?php echo time_ago(); ?> •
                    <?php the_category(' • ') ?>
                </div>
                <div class="articleTitle">
                    <a><?php the_title(); ?></a>
                </div>
                <div class="exPand">
                </div>
            <div class="rightCtrls">

                <!-- heart + -->
                <?php echo getPostLikeLink(get_the_ID());?>
                    <div  class="imageGlass">
                        <a href="#">
                            <img src="<?php echo get_template_directory_uri(); ?>/media/imageMag-02.png">
                        </a>
                    </div>
                </div>

            </div> <!-- end post right controls -->                 
                <div class="ajaxBoxLoadSource">
                    <iframe class="ajaxIframe"></iframe>
                </div>
                <div class="storyNoImg"></div>
            <div class="articleImageThumb">
                <a href="<?php if(get_post_meta($post->ID, "url", true)) echo get_post_meta($post->ID, "url", true); else the_permalink(); ?>" rel="<?php the_ID(); ?>">
                    <?php echo get_the_post_thumbnail($page->ID, 'original'); ?>
                </a>
            </div>
        </div> <!-- end boxy -->
4

1 回答 1

2

我认为这是你想要做的:

$(".postmetadata:contains('Seattle')").each(function(){
    $(this).closest(".boxy").find(".storyNoImg").css("background-image","url(" + "images/seattle.png" + ")");
});

首先你过滤你需要的元素,然后你遍历它们each()

另外正如已经指出的那样,没有contains()jQuery 对象的方法,并且在添加类时不要使用点

于 2013-08-26T17:50:03.340 回答