我在某个程序中有很多按钮。但是没有一个按钮具有特定的类。因此我通过下面的代码添加它们。
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
因为链接中有一个空格:
-
.所以下面的所有示例链接都返回 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);
});
$('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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句