2010-08-11 53 views
8

有沒有更好的方式jQuery來串連具有字符串「的(如HTML標籤屬性定義),比逃避報價jQuery - 更好的方式來連接有引號的字符串?

Escapy?例如:

$(this).prepend("<label for=\""+$(this).attr("id")+"\">"+"a"+"</label>");

+0

HTML標記屬性定義使用單引號? – Adam 2010-08-11 22:45:22

+0

嗡嗡聲我想知道如果jQuery可能有一個函數來處理這樣的字符串 – ina 2010-08-11 22:46:40

+1

對於記錄:'$(this).attr(「id」)'是一個膨脹和冗餘的方式來說'this.id'。 – Tomalak 2010-08-11 23:22:36

回答

10

您可以使用創建($(html, props))的對象的方法,如:

$('<label />', { for: this.id, text: 'a' }).prependTo(this); 
//or: 
$(this).prepend($('<label />', { for: this.id, text: 'a' })); 

這有叫.text()內部,服用保健的優勢任何編碼問題。另外,如果你這樣做了lot,它會更快,因爲HTML片段是一致和緩存的,所以使用節點的克隆,而不是每次將字符串轉換爲文檔片段。你創建的這樣的元素越多,它越快於字符串方法。出於同樣的緩存原因,元素越大(最多512字符串),收益就越大。

+1

+1好的選擇。 – user113716 2010-08-11 22:55:38

+0

更具可讀性 – 2010-08-12 04:54:20

+0

jQuery內部片段緩存+1 +1 0 – jmar777 2010-08-12 12:38:30

6

可以使用單引用主字符串,然後你就不必逃避雙引號。

$(this).prepend('<label for="'+$(this).attr("id")+'">'+ a +'</label>'); 
1

單引號?

$(this).prepend('<label for="'+$(this).attr("id")+'">'+'a'+'</label>'); 

,或者jQuery的:

$("<label>").attr("for", this.id).text(a).prependTo(this); 
5

這就是爲什麼我主要使用單引號$('here')。當您處理HTML時不必擔心雙引號。

$('""""No worries!"""""""') 

Google JavaScript Style Guide同意。

+0

如果你的HTML有像「本·富蘭克林的風箏」這樣的詞怎麼辦? – ina 2010-08-14 04:59:46

+1

好吧,然後你又回到了逃跑。沒有什麼是完美的,對吧?也可以使代碼更簡單。 – 2010-08-14 06:09:48

+0

或什麼時候你需要用PHP回顯它? – 2014-01-29 00:11:18

1

單引號是絕對要走的路。我建議在javascript中使用它們。特別是使用jQuery時,需要在字符串中使用雙引號比單引號更常用,所以它將爲您節省大量時間並提高可讀性。此外,它可以爲您節省擊鍵,不再需要討厭的Shift鍵:)

相關問題