我有一个函数可以向元素添加一些代码。问题是,当我使用jQuery的选择器($('.wdcl')
)时,它工作正常,但是当我创建一个新元素并将其发送到函数时,它将无法工作。
以下是HMTL文件中嵌入的代码:
<script type="text/javascript">
$(document).ready(function() {
$('#menu li a').click(function(){
//...
var $newItem = $('<li id="TEST" class="widget color-blue"></li>').appendTo($(columns).first());
obj.doWidget($newItem.get(0));
return false;
});
});
</script>
这里是.js文件中的代码(addWidgetControls函数是从其他地方调用的。我想在菜单项添加另一个小部件时也运行doWidget函数):
addWidgetControls: function () {
var func = this.doWidget;
$('.widget', $('.column')).each(function () {
func(this);
});
},
doWidget: function (wid) {
alert(wid);
//...
}
所以如果我使用了错误的语法,请告诉我,否则,请告诉我如何从传递的对象中打印出来源以查看错误。谢谢。
答案 0 :(得分:0)
这取决于您的obj.doWidget()
功能。如果它怀疑给定元素是jquery元素,则不应使用get(0)
get()
Retrieve the DOM elements matched by the jQuery object. So it isn't a jQuery object
答案 1 :(得分:0)
在IE9中,我使用$newItem.get(0).outerHTML
并且它有效。