Javascript 使用jQuery创建元素并添加样式属性

Javascript 使用jQuery创建元素并添加样式属性,javascript,jquery,dom,Javascript,Jquery,Dom,我有以下脚本。我还没有展示它,但后来我进一步操作了DOM。我在测试1和测试2中得到了相同的结果,但在测试3中得到了不同的结果。测试3有什么不同?请确认测试1和测试2的影响相同。如果您觉得测试3必须提供相同的结果,我将把我的完整代码发布到小提琴上,以证明它不是 var thead_cells=$('#myTable').children( 'thead' ).find('tr').eq(0).find('th'), var shimRow=$('<tr />',{height:0,p

我有以下脚本。我还没有展示它,但后来我进一步操作了DOM。我在测试1和测试2中得到了相同的结果,但在测试3中得到了不同的结果。测试3有什么不同?请确认测试1和测试2的影响相同。如果您觉得测试3必须提供相同的结果,我将把我的完整代码发布到小提琴上,以证明它不是

var thead_cells=$('#myTable').children( 'thead' ).find('tr').eq(0).find('th'),

var shimRow=$('<tr />',{height:0,padding:0,margin:0});

for (var i = 0; i < thead_cells.length; i++) {

    //test 1
    shimRow
    .append($('<td />',{height:0,outerWidth:thead_cells.eq(i).outerWidth(true)})
        .css('padding',0)
        .css('margin',0)
        .html(''));

    //test 2
    shimRow
    .append($('<td />',{height:0,outerWidth:thead_cells.eq(i).outerWidth(true), css:{padding:0, margin:0}})
        .html(''));

    //test 3
    shimRow
    .append($('<td />',{height:0,outerWidth:thead_cells.eq(i).outerWidth(true), padding:0, margin:0})
        .html(''));

}
var thead_cells=$('#myTable')。子项('thead')。查找('tr')。eq(0)。查找('th'),
var shimRow=$('',{高度:0,填充:0,边距:0});
对于(var i=0;i
测试1和测试2是否相同将完全取决于样式表为
td
元素指定的样式。在测试2中,您将覆盖任何样式表指定的填充和边距;在测试1中,您不是

测试3不起作用,因为
padding
margin
不是可以直接分配给
td
元素的属性;这就是为什么前两部分中有
css
部分,它调用jQuery的
css
函数(在jQuery 1.8及更高版本中)


为了理解测试2是如何工作的,值得仔细阅读。

谢谢TJ。我花了很多时间在这上面!我会详细阅读你推荐的文件!!!