Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取未捕获的类型错误_Javascript_Jquery - Fatal编程技术网

Javascript 获取未捕获的类型错误

Javascript 获取未捕获的类型错误,javascript,jquery,Javascript,Jquery,我有以下代码。除了这一行,一切都很好。我不知道为什么这一行出现了未捕获的TypeError错误 this.find('iframe').contents().find('body').css('background-color',settings.color) 特别是因为console.log(这)正确地输出了元素。我是jQuery的新手,所以这可能是我没有看到的东西 jQuery(document).ready(function($) { $('div[data-name*="for

我有以下代码。除了这一行,一切都很好。我不知道为什么这一行出现了未捕获的TypeError错误

this.find('iframe').contents().find('body').css('background-color',settings.color)

特别是因为console.log(这)正确地输出了元素。我是jQuery的新手,所以这可能是我没有看到的东西

jQuery(document).ready(function($) {

    $('div[data-name*="form_background_colour"] input.wp-picker-clear').click(function() {

        $(this).setDefaultFormEditorBackground();

    });
});

jQuery.fn.extend({

    setDefaultFormEditorBackground: function (options) {
        var settings = jQuery.extend({
            color: ""
        }, options );

        var $colorpicker_input = this;

        var $bgcolor_div = $colorpicker_input.closest('div[data-name*="form_background_colour"]');


        $bgcolor_div.nextAll('[data-type="wysiwyg"]:lt(2)').each(function() {
            console.log(this);
            console.log($colorpicker_input);
            this.find('iframe').contents().find('body').css('background-color', settings.color);
            $colorpicker_input.closest('.wp-picker-container').find('.wp-color-result').css('background-color', settings.color);
        });

    }
});

each()
回调中的
this
将是元素本身,而不是它们的jQuery包装器

您需要这样做:

jQuery(this).find('iframe').contents().find('body').css('background-color', settings.color);

如果iframe源来自您将拥有的另一个域,您是否可以发布控制台输出的
settings.color
issues@TusharGupta如果你在控制台上发布报告的实际错误,它会有很大帮助。这不起作用,但你的答案让你找到了正确的答案。谢谢<代码>jQuery(this).find('iframe').contents().find('body').css('background-color',settings.color)
@renny我猜在你的情况下,
$
被重新分配到了
jQuery
之外的其他地方。我已经更新了我的答案。