2013-04-07 45 views
1

我正在编写一个MVC应用程序,并且在一个页面上,我需要动态地为所有元素提供一个ID,因为表格呈现的方式以及数据如何传递给它。当我运行这个时,所有的元素都被替换,但是它将删除标签之间的内容。有没有什么办法可以让它只替换开始标签,而不是触摸剩下的,或者其他jQuery函数来做到这一点?我的代码如下:在html元素中使用jQuery replaceWith

<script type="text/javascript" charset="utf-8"> 
$(document).ready(function() { 
var oTable1 = $('#example1').dataTable({ 
    sScrollX: "100%", 
    sScrollY: "200px", 
    bFilter: false, 
    bScrollCollapse: true, 
    bPaginate: false, 
    bScrollInfinite: true, 
    iScollLoadGap: 10, 
    oLanguage: { 
     sZeroRecords: "There are no records that match your search criterion", 
    } 
}).makeEditable({ sUpdateURL: "/Home/UpdateData" }); 

}); 

</script> 
<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { var editChange = $('td').replaceWith('<td id = "@Html.ValueFor(x => x.name)" >'); }); 
</script> 

任何帮助表示赞赏。

回答

1

而不是使用replaceWith我可能会建议使用其他功能上的ID,也就是意味着function .attr()换下元素的属性。

$('td').attr('id','@Html.ValueFor(x => x.name)'); 

此外,要小心,因为在客户端的ASP值将不可用一次。您的选择器$('td')非常普遍,并且IDS必须是唯一的。

0

尽量明确设置TD元素(一个或多个)

$('td').each(function() { 
    this.id = @Html.ValueFor(x => x.name); 
});