获取未捕获的 TypeError
2015-03-17
63
我有以下代码。除了这一行之外一切都很好,不确定为什么我在这一行上收到 Uncaught TypeError 错误
this.find('iframe').contents().find('body').css('background-color', settings.color);
尤其是因为 console.log(this) 正确输出了元素。我是 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);
});
}
});
1个回答
each()
回调中的
this
将是元素本身,而不是它们的 jQuery 包装器。
您需要执行以下操作:
jQuery(this).find('iframe').contents().find('body').css('background-color', settings.color);
JLRishe
2015-03-17