删除HTML标记之间的空格

时间:2018-12-05 10:13:10

标签: jquery html

我必须删除HTML标记之间的字符之间的空格。

E.G

<option value="0" title="Advertising / Promotional Charges">Advertising / Promotional Charges</option>

我已使用此代码

.replace(/\>\s+\</g,'');

但是它不起作用,我需要类似

的输出
 <option value="0" title="Advertising / Promotional Charges">Advertising/PromotionalCharges</option>

2 个答案:

答案 0 :(得分:2)

您可以使用:

.replace(/\s+/g, '')

而不是DOM元素本身。

这将匹配所有(/g标志)空格(\s+),并用''(空字符串)替换

请参见下面的工作示例:

$('select option').each((_, elem) => { // Loop over all options in the dropdown
  let currentText = $(elem).text(); // Get the current options text
  let newText = currentText.replace(/\s+/g, ''); // Remove whitespace
  $(elem).text(newText); // Set the text to the whitespace removed varient
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
  <option value="0" title="Advertising / Promotional Charges">Advertising / Promotional Charges</option>
</select>

答案 1 :(得分:2)

您不应使用正则表达式将HTML修改为字​​符串。而是使用DOM更新option元素的文本。不过,您仍然可以在此处使用正则表达式。特别是与\s字符类一起删除所有空白。试试这个:

$('option').text(function(i, t) {
  return t.replace(/\s/g, '');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
  <option value="0" title="Advertising / Promotional Charges">Advertising / Promotional Charges</option>
  <option value="1" title="Foo / Bar">Foo / Bar</option>
  <option value="2" title="Fizz / Buzz">Fizz / Buzz</option>
</select>