2014-11-09 73 views
0

我有動態添加CSS代碼的textarea多行文本換行;」字符

我想的CSS看起來乾淨,想知道它可能每個之後的行分裂。‘;’字符。

I currently have it like this 
--------------------| 
display: inline;color: 
red;    | 
        | 
        | 
        | 
        | 
-------------------- 

And want it to be like this automatically 
--------------------| 
display: inline; | 
color: red;   | 
        | 
        | 
        | 
        | 
-------------------- 

有沒有一種方法,我可以用jQuery或Javascript做到這一點

+0

聽起來就像你需要一些JavaScript的鉤子onchange事件,找到所有';'不在行尾的字符並將其替換爲'; \ n'(例如,在分號後面添加一個新行)。 – scunliffe 2014-11-09 01:32:16

回答

0
// Using jQuery 
var val = $('textarea').val(); 
$('textarea').val(val.replace(/;/g, ';\n')); 

// Using plain javascript 
var textarea = document.getElementsByTagName('textarea')[0]; 
textarea.value = textarea.value.replace(/;/g, ';\n'); 
+0

如果在分號後已經存在換行符,這不會增加**額外的**換行符嗎? – scunliffe 2014-11-09 02:38:24

+0

當然會的,但根據上面的問題,似乎字符串沒有任何換行符:) – 2014-11-09 02:41:47

+0

這似乎工作得很好。 – UserDy 2014-11-10 18:06:53

0

如果您有jQuery的訪問這應該工作;

因此,可以說你有一個textarea:

<textarea id="myTextarea"></textarea> 

您可以連接onchange事件處理程序來調整內容。

$(document).ready(function(){ 
    $('#myTextarea').change(function(){ 
    var oldVal = this.value; 
    var contentSplitBySemiColons = oldVal.split(';'); 
    var thisFragment; 
    for(var i=1;i<contentSplitBySemiColons.length;i++){ 
     thisFragment = contentSplitBySemiColons[i]; 
     if(thisFragment[0] != '\n'){ 
     contentSplitBySemiColons[i] = '\n' + thisFragment; 
     } 
    } 
    this.value = contentSplitBySemiColons.join(';'); 
    }); 
}); 

如果你想嘗試一下,這裏有一個它的JSFiddle。 http://jsfiddle.net/jeLscdm5/4/

+0

這似乎是一個很好的解決方案。儘管如果我也想在新的css行之前刪除任何空格,這段代碼是什麼樣的? – UserDy 2014-11-10 17:05:36

+0

我會運行一個類似的循環......用'\ n'字符分割......測試你關心的領先空格(空格,製表符)並刪除它們的每一行......但是這*可以*刪除故意的縮進在一個選擇器內(這取決於你的用戶,可能會使他們感到沮喪) – scunliffe 2014-11-10 17:23:53

相關問題