我正在寻找一种方法将自定义类添加到特定类的第一个和第二个单词中?
我的代码就像这样
<h2 class="content-heading">Latest News</h2>
我想要像
这样的东西<h2 class="content-heading"><span class="1">Latest</span> <span class="2">News</span></h2>
答案 0 :(得分:2)
您可以使用函数设置html
,然后split
innerText
和map
设置span
。
$('.content-heading').html(function() {
return this.innerText.split(' ').map(function(e, i) {
return $('<span />', {
class: 'i' + i,
text: e
});
});
});
.i0 {
color:red;
}
.i1{
color:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h2 class="content-heading">Latest News</h2>
注意:类需要是SGML名称。因此,我在我的示例中以i
为前缀。
答案 1 :(得分:1)
另一种方式:
var t = $(".content-heading").text();
t = t.replace(/.*?\s/, function (v) {
return "<span class='class1'>" + v + "</span>";
});
$(".content-heading").html(t);
答案 2 :(得分:0)
您已使用<span>
标记执行此操作,但您需要使用字符而不是类的数字。只需用字母替换1
和2
,然后在css中访问它们就可以了
<h2 class="content-heading"><span class="h">Latest</span> <span class="f">News</span></h2>
.h{
color: red;
}
.f{
color: blue;
}
答案 3 :(得分:0)
您可以使用javascript
自动执行此操作,如果这是您正在寻找的答案类型,请查看此内容。
这会将word
的变量包含在<span>
类first-word
中。
$('.content-heading').each(function() {
var html = $(this).html();
var word = html.substr(0, html.indexOf(" "));
var rest = html.substr(html.indexOf(" "));
$(this).html(rest).prepend($("<span/>").html(word).addClass("first-word"));
});
以下是 JSFiddle 示例。
答案 4 :(得分:0)
可能会这样:
var h2 = $('h2');
var text = h2.text().split(' ');
for( var i = 0; i < 2; i++ ) {
text[i] = '<span class="class'+i+'">' + text[i] + '</span>';
}
h2.html(text.join(' '));
那里偷了这个答案