2017-11-10 135 views
0

我在某個程序中有很多按鈕。但沒有一個按鈕具有特定的類。因此我通過下面的代碼添加它們。刪除前導空格和替換多個空格

jQuery('.btn').each(function() { 
    var btnFullText = jQuery(this).text(); 
    var btnText = btnFullText.replace(/\s+/g, '-').toLowerCase(); 
    jQuery(this).addClass(btnText); 
}); 

到目前爲止,這項工作非常好。但是,你可能已經猜到了不完美。

某些按鈕編碼是這樣的:

<a class="btn btn-info" href="javascript:void(0);" onclick="Joomla.submitbutton('taskform.add');"><i class="icon-plus icon-white"></i> New Task</a> 

因爲路段中的空間,創建這樣-new-task類:

  1. 我如何能適應上面的代碼只是刪除第一個單詞前的所有空格。
  2. 我如何確保如果字詞之間存在多個空格,那麼這個字段只會變成一個-

所以下面回報所有示例鏈接new-task

<a><i class="icon-plus icon-white"></i> New Task</a> 
<a><i class="icon-plus icon-white"></i>  New  Task</a> 
<a><i class="icon-plus icon-white"></i>   New Task</a> 

PS1:我需要在這種情況下使用jQuery,而不是$

PS2:如果您願意,以上代碼可以更改爲完全使用Javascript/jQuery。

PS3:我無法更改程序中的鏈接。

PS4:我很樂意聽到更好的標題建議。

到目前爲止的代碼用幫助從註釋下面

jQuery('.btn').each(function() { 
    var btnFullText = jQuery(this).text(); 
    var btnTrimmedText = btnFullText.trimLeft().replace(/\s+/g, '-').toLowerCase(); 
    var btnText = btnTrimmedText.replace(/-+/, '-'); 
    jQuery(this).addClass(btnText); 
    }); 
+2

你查找 「左修剪的JavaScript」 – epascarello

+0

@epascarello無不是爲簡單的原因我不知道所有這些條款。所以我不只是去查找它們。但我只是因爲你的評論而做了。所以非常感謝你。我是否正確地認爲在進行替換之前必須先進行修剪? – purple11111

+0

您可以修剪()該值,然後用'-'替換空格,然後用'-'替換任何發生的' - +'來擺脫重複項。 – Taplar

回答

2

$('a').each(function(){ 
 
    var $this = $(this); 
 
    //get the text 
 
    //trim the leading and trailing spaces 
 
    //replace all occurances of one or more spaces with '-' 
 
    //lowercase the result 
 
    var clazz = $this.text().trim().replace(/\s+/g, '-').toLowerCase(); 
 
    
 
    //only do this if you don't want '--' in your ids 
 
    clazz = clazz.replace(/-{2,}/g, '-'); 
 
    
 
    $this.addClass(clazz); 
 
    console.log(clazz); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a><i class="icon-plus icon-white"></i> New Task</a> 
 
<a><i class="icon-plus icon-white"></i>  New  Task</a> 
 
<a><i class="icon-plus icon-white"></i>   New Task</a> 
 
<a><i class="icon-plus icon-white"></i>   New - Task</a>

+0

我被ID完全混淆了。問題是關於課程。所以我讀錯了嗎? – purple11111

+0

對不起,我注意到我提交後。改爲上課。 – Taplar

+0

你製作了這個'.edit表單字段集.btn-toolbar .btn-group .btn.btn-info:不是(.dropdown-toggle)''變成''.save'這樣好多了!!!非常感謝你。如果可能的話,你能否告訴我如何使問題更好? – purple11111