0

我喜欢替换 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;
4

0 回答 0