问题在于:
我在正斜杠(/)之前和之后拆分文本。然后我将每个拆分部分包装在不同的span类中,这样我就可以对它们进行不同的设置。但是,如果文本中没有正斜杠,则会将 undefined 一词返回到页面上。由于我不希望 undefined 出现,所以如果文本包含正斜杠,我只需要运行该函数。
这是我目前的代码:
$('.author-info').html(function(i, val) {
val = val.split('/');
return '<span class="company">' + val[0] + '</span>' + '/' +
'<span class="job-title">' + val[1] + '</span>';
})
这转变了:
<div class="author-info">
Company XYZ / My Job Title
</div>
进入这个:
<div class="author-info">
<span class="company">Company XYZ</span> /
<span class="job-title">My Job Title</span>
</div>
问题是,如果没有正斜杠,则会在页面上返回单词&#34; undefined&#34; 。所以下面的代码(注意缺少正斜杠):
<div class="author-info">
Company XYZ My Job Title
</div>
变成这样:
<div class="author-info">
<span class="company">Company XYZ My Job Title</span> /
<span class="job-title">undefined</span>
</div>
为了防止未定义的文本出现,我需要此功能,只有在 .author-info div中有正斜杠时才能运行。
有没有办法让这种情况发生?
非常感谢您提供任何帮助!
答案 0 :(得分:4)
尝试......
$('.author-info').html(function(i, val) {
if (val.indexOf("/")>0) {
val = val.split('/');
return '<span class="company">' + val[0] + '</span>' + '/' +
'<span class="job-title">' + val[1] + '</span>';
}
})
答案 1 :(得分:1)
使用包含:
$('.author-info').html(function(i, val) {
if(!$('.author-info:contains("/")'){
return;
}
val = val.split('/');
return '<span class="company">' + val[0] + '</span>' + '/' +
'<span class="job-title">' + val[1] + '</span>';
})
答案 2 :(得分:0)
添加if条件以检查整个文本在任何地方是否有/
:
$('.author-info').html(function(i, val) {
if(val.indexOf('/')>-1)
{
val = val.split('/');
return '<span class="company">' + val[0] + '</span>' + '/' +
'<span class="job-title">' + val[1] + '</span>';
}
})