我喜欢替换 div-p-"list" (div#menu) 中的 ul-li-list (ul#menu)。这意味着 ul 变成 div 而 li 变成 p-tag。
问题:我发现的插件替换了整个文档 (DOM) 中的所有 ul-li-lists。
每个人都可以帮我更改插件代码以用#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;