仅当 div 包含某些文本时才运行 jQuery split() 函数

Rya*_*les 1 javascript jquery split function

这是问题所在:

我在正斜杠 (/) 之前和之后拆分文本。然后我将每个拆分部分包装在不同的跨度类中,以便我可以对它们进行不同的样式设置。但是,如果文本中没有正斜杠,它会将单词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>';
})
Run Code Online (Sandbox Code Playgroud)

这变成了这个:

<div class="author-info">
  Company XYZ / My Job Title 
</div>
Run Code Online (Sandbox Code Playgroud)

进入这个:

<div class="author-info">
  <span class="company">Company XYZ</span> / 
  <span class="job-title">My Job Title</span>
</div>
Run Code Online (Sandbox Code Playgroud)

再一次,问题是如果没有正斜杠,它会将单词“undefined”返回到页面上。所以下面的代码(注意缺少正斜杠):

<div class="author-info">
  Company XYZ My Job Title 
</div>
Run Code Online (Sandbox Code Playgroud)

变成这样:

<div class="author-info">
  <span class="company">Company XYZ My Job Title</span> / 
  <span class="job-title">undefined</span>
</div>
Run Code Online (Sandbox Code Playgroud)

为了防止出现未定义的文本,我需要此函数仅在.author-info div 中有正斜杠时运行。

有没有办法做到这一点?

非常感谢您提供的任何帮助!

rfo*_*nal 5

尝试 ...

$('.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>';
  }
})
Run Code Online (Sandbox Code Playgroud)