2014-04-19 44 views
0

我有雙引號以及TD元素中的單引號。點擊該TD後,我將該TD內的值傳遞給函數並創建輸入元素。
對於單引號它工作正常,但在雙引號的情況下,它是刪除雙引號後的字符串。在javascript中的文本框中打印雙引號

Have a look at this fiddle,我試過逃脫和unescape,但也沒有工作,我也試過替換功能。

$(".table td").click(function(){ 
    var input = createInput($(this).html()); 
    $(this).html(input); 
}); 

createInput = function(str){ 
    str = typeof str !== 'undefined' ? str : ""; 
    input = '<input value="'+str+'">'; 
    return input; 
} 
+1

確定。你需要提出一個問題,然後才能提供幫助 – Martijn

+0

你現在有什麼,你能展示一個小問題的演示,以及一些預期的結果嗎? – Martijn

+0

我很抱歉,我面臨的問題發佈問題,所以我試着用一些示例文本,它的工作,現在我編輯了這個問題,M也試圖添加jsfiddle演示http://jsfiddle.net/F68bm/1/ –

回答

1

入住這http://jsfiddle.net/F68bm/6/

$(".table td").click(function(){ 
    var input = createInput($(this).html()); 
    $(this).html(input); 
}); 

createInput = function(str){ 
    //alert(str); 
    str = typeof str !== 'undefined' ? str : ""; 
    input = '<input value='+str+'>'; 
    return input; 
} 

什麼問題你的報價,所以正確的是

input = '<input value='+str+'>' 

認爲這是三個部分

1)< input value=,這是靜態部分,評價爲它是在HTML

2)+str+這裏這被動態部分處理後加入。

3)>,這也是靜態部分,把因爲它是在HTML,

其簡單:)

0

您可以避免使用引號來阻止它們過早地結束字符串。

/* javascript */ 

var str = "My string is \"awesome\"."; 

console.log(str);  //prints: My string is "awesome". 
1
$(".table td").click(function() { 
    var input = createInput($(this).html()); 
    $(this).html(input); 
}); 

createInput = function(st){ 
    st = typeof st !== 'undefined' ? st : ""; 
    input = $('<input type="text">').val(st); 
    return input; 
} 
+0

也喜歡這種方法 –