我利用scriptaculose / prototype Builder来创建TR和TD。 colspan在IE中不起作用,但它适用于FF和Chrome。你对这个问题有经验吗?
这在IE中不起作用,但它适用于FF和Chrome:
Builder.node('td',{'colspan':'12','class':'bdr-bottom'},(noteText))
适用于IE,FF和Chrome:
for (var i=1; i<numCols; i++)
{
noteRowSpan=Builder.node('td',{'class':'bdr-bottom'},(''));
$(noteRow2).insert($(noteRowSpan));
}
答案 0 :(得分:0)
如果您使用下面的new Element()
,则除非需要效果,否则不需要加载scriptaculous库 - 这些内置于代码PrototypeJS框架中。
此
Builder.node('td',{'colspan':'12','class':'bdr-bottom'},(noteText))
可以更改为
new Element('td',{'colspan':12,'class':'bdr-bottom'}).update(noteText);
此
for (var i=1; i<numCols; i++)
{
noteRowSpan=Builder.node('td',{'class':'bdr-bottom'},(''));
$(noteRow2).insert($(noteRowSpan));
}
可以更改为此
for(var i=1 ; i<numCols; i++)
{
noteRowSpan = new Element('td',{'class':'bdr-bottom'});
$(noteRow2).insert(noteRowSpan);
//if noteRow2 is created with new Element() you don't need to re-extend it do it like this
noteRow2.insert(noteRowSpan);
}
编辑跟进
new Element()
方法的参数不是子元素,而是您要创建的元素的属性。
你想做什么
noteRow1= new Element('tr',
new Element('td',{'class': 'bld rt'},'Date:'),
new Element('td').update(noteText)
);
应该像这样完成
noteRow1= new Element('tr');
noteRow1.insert(new Element('td',{'class': 'bld rt'}.update('Date:'));
noteRow1.insert(new Element('td').update(noteText));
或链接在一起
noteRow1= new Element('tr').insert(new Element('td',{'class': 'bld rt'}).update('Date:')).insert(new Element('td').update(noteText));
另外,作为指导说明 - 您可以点击评论链接询问后续问题
答案 1 :(得分:0)
感谢。我正在使用新的元素,它工作正常。如何使用嵌套的新元素?代码不起作用:
noteRow1= new Element('tr',
new Element('td',{'class': 'bld rt'},'Date:'),
new Element('td').update(noteText)
);
感谢。