2014-07-13 43 views
1

我有一個Javascript與jQuery。Jquery Append刪除轉義報價

http://jsfiddle.net/P5gD7/3/

var libelle = 'tes\'te'; 
var id = 1; 
var toAdd = "<input type='text' name='choix[" + id + "]' value='" + libelle + "' />"; 
$("#test").append(toAdd); 

問題是,當我在一個帖「libelle」變量(我已經逃脫了這句話),當我使用追加,jQuery的只放TES在「值」屬性。 我必須做簡單的報價。 有關提示(toAdd)的信息,請將整個輸入無誤地返回給我。

任何想法?

感謝

+0

因爲你的分隔符是''' – Popnoodles

回答

3

如果你使用jQuery通過屬性而不是字符串操作來創建元素,你就可以避免這些類型的問題:

var libelle = 'tes\'te'; 
var id = 1; 
$('<input />', { 
    type: 'text', 
    name: 'choix[' + id + ']', 
    value: libelle 
}).appendTo('#test'); 

Example fiddle

+0

怎麼樣的其它附加的文字?例如,如果我想顯示這個HTML:測試變量:<輸入.... appendTo函數將我的輸入直接放入div我不能在輸入前添加文本。 – Warks

+0

@Warks,這是真的,但是你可以根據需要使用'before()'或'after()'在'input'周圍的DOM中插入文本。 –

+0

謝謝,該解決方案解決了我的問題。非常感謝 – Warks

1

一種方法在這裏是創建元素,然後設置該元素的值。這些可以鏈接在一起是這樣的:

var libelle = "tes'te"; 
var id = 1; 
var toAdd = "<input type='text' name='choix[" + id + "]' />"; 

// create the element, show and finally set the value (.val) 
$(toAdd).appendTo("#test").val(libelle); 

See The Fiddle Here