我想在div-p-“list”(div#menu)中替换ul-li-list(ul#menu)。这意味着ul变为div而li变为p-tag。
问题:我发现的插件替换了整个文档(DOM)中的所有ul-li列表。
每个人都可以帮我改变插件代码,用#menu替换唯一的列表吗?
replaceElements插件:
;(function($) {
jQuery.fn.replaceElements = function(arg,callback) {
var options = $.extend({},$.fn.replaceElements.defaults,arg,{callback:callback});
return this.each(function() {
var obj = $(this).parent;
replace(options,obj);
});
};
function replace(opts,obj) {
for (var i in opts) {
$(obj).find(i).each(function() {
var thisElement = $(this);
thisElement.wrapInner("<"+ opts[i] +" />");
var attr = jQuery.getAttributes(thisElement,true);
if(attr) {
thisElement.children().attr(attr);
}
thisElement.children().unwrap();
});
}
callFn(opts.callback);
};
function callFn(callback) {
if($.isFunction(callback)){
callback.call(this);
}
};
$.fn.replaceElements.defaults = {
ul: 'div',
li: 'p'
};
})(jQuery);
拨打:
$(document).ready(function (){
$("#mainmenu").replaceElements({},function(){
columnnav($("#menu"));
}); // Ende replaceElements mit Callback Funktion
});
列表 - 示例
<ul id="menu">
<li>Link1</li>
<li>Link2</li>
<li>Link3
<ul>
<li>Sublink1</li>
</ul>
</li>
</ul>
好的,到目前为止 - 谢谢你的帮助!
大卫
PS:我认为突破点在这一行,不是吗? var obj = $(this).parent;