HTML:获取没有格式的特殊字符

时间:2013-11-25 05:33:48

标签: javascript html select

我有一个选择,以下是控制台输出。

> select.options[select.selectedIndex]
  <option value=​"49">​books & stationary​</option>​
> select.options[select.selectedIndex].innerHTML;
  "books &amp; stationary"

当我使用innerHTML调用时,它会格式化值并用&替换&amp;我如何才能获得未格式化的值?

4 个答案:

答案 0 :(得分:2)

在询问innerHTML时,您要求使用HTML。在HTML中,&字符很特殊,编写books & stationery在技术上是错误的 - 应该说books &amp; stationery。浏览器非常智能,可以识别出不明确的含义,并对其进行更正。因此,当您要求返回HTML时,您将获得更正的值。

如果你想要文本,那就另当别论了。使用.textContent代替.innerHTML

如果您已经 HTML并希望删除HTML标记并从中获取文本,则可以执行以下操作:

function strip_html_to_text(html) {
  var el = document.createElement('div');
  el.innerHTML = html;
  return el.textContent;
}

答案 1 :(得分:1)

事实证明它更简单。文本函数调用给出了我正在寻找的文本

  

select.options [select.selectedIndex]的.text;

output:  books & stationary

答案 2 :(得分:1)

将replace与textContent一起使用而不是innerHTML:

select.options[select.selectedIndex].textContent.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

答案 3 :(得分:1)

如果您只想获取所选选项的文本。您可以使用.textContent代替.innerHTML

Try this

.textContent