2010-08-26 38 views
1

我建立缩略图页面使用jQuery这样的:为什么jQuery html()方法忽略换行符?

ID=this.id; 
$('#thumbs').empty().html('<span class="title">'+$('#'+ID).html())+'</span><br />'; 
var i = 1; 
for (i=1;i<=count[ID];i++) 
    { 
    $('#thumbs').append('<img class="thumb" src="graphics/thumbs/'+ID+'/'+i+'.jpg" />'); 
    } 

的想法是,在<span>看来,其次是<br />,然后竖起大拇指,这是简单的嵌入式图形与底部和右边距,将填满页面的其余部分。而且他们确实 - 除了换行符不会发生。

我正在使用Dreamweaver,因此我可以直接观看代码,并且足够肯定,该脚本根本没有插入<br />标记。

这是否与jQuery的HTML解析有关?如果是这样,如何解决它?

+0

第一个'html()'调用结束时会出现一个''''。这是不是从你的项目中复制的实际代码?因为如果不是,那里可能会有一些拼写错误,你没有在这里复制。 jQuery不会添加任何它无法解析的元素。如果它*是实际的代码,那么缺少的')'肯定是一个问题。 – 2010-08-26 06:19:38

回答

3

不是一个jQuery的问题(​​至少不会在1.4.2版本)

http://www.jsfiddle.net/SbFgf/

以你的代码第二次看,我意识到你有早期闭合paranthesis:

$('#thumbs').empty().html('<span class="title">'+$('#'+ID).html()+'</span><br />'); 

这应该做到这一点。

+0

虽然这是公平的,但如果该代码是OP代码的精确副本,那么该调用插入的HTML都不应该存在,所以*至少*标题范围也应该丢失,并且代码可能不会继续要完全超出这个错误,所以最有可能的是,所有插入的代码都应该丢失。 – 2010-08-26 06:21:52

+0

但仍然+1,因为这不是一个jQuery问题... – 2010-08-26 06:22:22

+0

正如我以前说过的,我很高兴有什么是我错了,而不是jQuery。 – 2010-08-26 06:25:53

0

它不是jQuery的html()函数的问题。我做了一个快速test here,它的工作原理。 (同样在1.3.2) 也许$('#'+ID).html())搞砸了