jQuery - addClass无法正常工作

时间:2015-04-04 14:52:16

标签: jquery wordpress

我有以下HTML:

<div class="b-250">
  <div id="c6281_701_1" class="sam-container sam-place" data-sam="1">
    <a id="a55_701" class="sam_ad" target="_blank" href="XYZ">
      <img alt="" src="XYZ">
    </a>
  </div>
</div>

<script>
    jQuery(document).ready(function(){
        console.log('try it - window ready');
        //jQuery('div.sam_ad').find('img').addClass('wp-post-image article-  thumbnail');
        console.log(jQuery(".b-250").find('div'));
        jQuery(".b-250").find('div').addClass("home-post has-post-thumbnail post");
        console.log('did it - window ready');
    });
</script>

我无法使用类sam_ad向元素添加一些类。

我尝试了jQuery('.sam_ad')...或以上的不同方法。

任何线索?

由于

3 个答案:

答案 0 :(得分:2)

使用:

jQuery(".sam_ad").addClass("home-post has-post-thumbnail post");

而不是:

jQuery(".b-250").find('div').addClass("home-post has-post-thumbnail post");

应该工作得很好。

在这个example filddle中,它添加了类:

<a id="a55_701" class="sam_ad home-post has-post-thumbnail post" target="_blank" href="XYZ">

确保您已包含jQuery库


如果你正在使用Wordpress(就像你看来的那样),你可能需要在文档就绪函数中包装jQuery:

 jQuery(document).ready(function() {        
    console.log('try it - window ready');
    jQuery(".sam_ad").addClass("home-post has-post-thumbnail post");
    console.log('did it - window ready');
 });

答案 1 :(得分:0)

感谢您的回答,在正常情况下,运作良好。

我发现有一些奇怪的ajax-request工作,它呈现.sam_ad-Object。因此默认的document.ready-function不适用于对象,因为它们在dom准备就绪时没有被渲染。

所以我切换到window.load,这很好..

答案 2 :(得分:0)

只需将您的jQuery版本更新为1.12或更高版本

function modify_js_cdn() {
    if ( ! is_admin() ) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script( 'jquery' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js', false, '1.12.4' );
        wp_enqueue_script( 'jquery' );
    }
}

add_action( 'init', 'modify_js_cdn' );