0

我有一个剃刀视图,其中我使用下面的代码生成 html 一切都很好

<ul>
        @foreach (var resx in Model.Resxs()) 
        {
            tempWidth = tempWidth + @resx.ChildSitePartVrsn.ResxVrsn.WidthInPx;
            temp = temp + 1;
            width = @resx.ChildSitePartVrsn.ResxVrsn.WidthInPx + "px"; 

            <li style="width:@width;">
                @if (tempWidth <= 960){
                    <a href="#tabs-@temp">@resx.ChildSitePartVrsn.SitePart.NameInUse</a>
                }
                else{           
                    <a href="#tabs-@temp" class="hide">@resx.ChildSitePartVrsn.SitePart.NameInUse</a>
                }
            </li>
        }
        @* needs to be inserted after the last visible tab. *@
        <li><input type="button" id="moreTabs"/></li>
    </ul>

我想在上面生成的两个特定的 li 之间插入一个具有按钮的 li,我有以下代码。当我在 firebug 中调试脚本时,我得到了所有值,但该元素不是在 html 中创建的,令人惊讶的是,我什至丢失了我之前获得的一些 html,没有下面的代码 html 保持不变,但我必须这样做根据我的要求。

$("<li><button id=\"moretabs\"></button></li>")
                .before(
                    $("a.hide", that.element)                        
                        .first()
                        .parent("li")                        
                );

任何工作请......

4

2 回答 2

1

before()在 DOM 中的另一个元素之前插入一个元素,因此在新元素上调用它不会向 DOM 中插入任何内容:

var li   = $('<li />'),
    btn  = $('<button />', {id:'moretabs'}),
    elem = $('a.hide').closest('li'); // actual element existing in the DOM

li.append(btn).insertBefore(elem);
// or
elem.before( li.append(btn) )
于 2013-06-05T13:25:27.953 回答
0

尝试append()改用

$("yourSelector").append("<li><button id='moretabs'></button></li>");
于 2013-06-05T13:25:15.213 回答