如何在dom中创建一些特定值的字符串?

时间:2017-04-08 09:17:15

标签: javascript jquery html regex

我有以下HTML:

<div>
  <i class="fa fa-male ">:Before</i>
  <i class="fa fa-like">:Before</i>
</div>

现在我想创建一个这样的字符串:male, like。我怎么能这样做?

console.log(/fa-([^"]+)/.exec($('div').html()));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
      <i class="fa fa-male ">:Before</i>
      <i class="fa fa-like">:Before</i>
    </div>

2 个答案:

答案 0 :(得分:6)

选择所有图标后,您需要循环播放。例如:

var str = $('.fa').map(function() {
  return this.className.match(/fa-([^"]+)/)[1]
}).get()
.join(', ')
  
console.log(str)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <i class="fa fa-male">:Before</i>
  <i class="fa fa-like">:Before</i>
</div>

答案 1 :(得分:0)

使用map简单地遍历元素并提取(替换)元素的类名。

&#13;
&#13;
var icons = document.getElementsByClassName('fa');

var str = Array.from(icons)
.map(c => c.classList.value.replace('fa fa-', ''))
.join(', ')

console.log(str)
&#13;
<div>
  <i class="fa fa-male">:Before</i>
  <i class="fa fa-like">:Before</i>
</div>
&#13;
&#13;
&#13;