2010-07-01 54 views
0

我從XML中提取以下內容並將其放入一個jQuery變量中。空間或 在jQuery中不輸出

links.append($("<a href='"+alink+"'></a>&nbsp;").html(desc)); 

...但是&nbsp;不輸出到頁面上。我需要這樣的的HREF輸出

分開我也試圖

links.append($("<a href='"+alink+"'></a>").html(desc)); 
    links.append($("&nbsp;")); 

非常感謝!

回答

0

你最好的風格與CSS,是這樣的:

links.append($("<a class='link' href='"+alink+"'></a>").html(desc)); 

在CSS:

a.link { 
padding-left : 5px ; 
padding-right : 5px ; 
} 
+0

笑DOH,這對我的作品:) – c14kaa 2010-07-01 09:26:51

0

你可以嘗試

&#160; 
+0

這似乎不工作,我很害怕! – c14kaa 2010-07-01 09:30:43

2
$("<a href='"+alink+"'></a>&nbsp;") 

呀,這其實只是創建<a> ele並放棄nbsp。當您將字符串傳遞到看起來像(*)HTML的$()函數時,jQuery會在字符串中的第一個<和最後一個>之間創建一段標記。如果你有任何超出前導或尾隨的內容,它會被扔掉(**)。你可以說傻瓜的jQuery:

$("<a href='"+alink+"'></a>&nbsp;<!-- don't ignore me! -->") 

這似乎並沒有被記錄任何地方,是沒有任何意義,而且可能會被認爲是一個錯誤,但它一直jQuery的一段時間的正常行爲,因此它可能不是離開。

當您將HTML字符串直接而不是通過$函數傳遞給append函數(以及其他操作方法)時,不會發生此行爲。所以:

links.append("<a href='"+alink+"'></a>&nbsp;"); 

確實保持空間。但是,一個更好的出路,便是制止亂扔HTML字符串,所以你不必擔心含'<&字符或者和工作更DOM風格alink

var link= $('<a/>'); 
link.attr('href', alink); 
link.html(desc); 
links.append(link); 
links.append('\xA0'); 

,或者更簡潔,使用jQuery 1.4的props說法快捷:

links.append($('<a/>', {href: alink, html: desc})); 
links.append('\xA0'); 

假設desc真的是一件應該包含HTML標記;如果不是,請改用text

(我用\xA0的JavaScript字符串字面方式包括字符U + 00A0不間斷空格,因爲它比HTML實體引用短的整整兩個字符哇噢!)

(*:如何它是否告訴一個字符串是HTML?爲什麼通過檢查它是否有一個<>字符,當然是按照這個順序。如果你嘗試使用一個具有這些字符的選擇器,它會被愚弄輝煌,jQuery,輝煌。(***))

(**:爲什麼看到的jQuery 1.4.2線125從match[1]從第一< -the組構建HTML片段在quickExpr最後> -and不是原來的。字符串或match[0]

(***:。我被諷刺的瘋狂過度超載$功能是jQuery的最壞的特徵之一)