0

我正在用 jquery 编写一个花哨的选择框,并且遇到了一个小问题。

http://jsfiddle.net/kYhXn/

<select>
    <option>
        Shocka <br> Zooloo
     </option>
</select>​


alert($('option').html()+'');​

无论出于何种原因,该<br>标签都不会显示在警报中!如何获取带有br标签的 html?

纯 js http://jsfiddle.net/z4Wb9/同样的问题。

4

1 回答 1

1

如果您想要一种解决方法 - 您可以使用不可见字符ALT+255或“  ”并执行替换:

//In the replace function, use the ' ' character and not just a space.
alert($('option').val().replace(' ','\n'));​

或者,如果您想用新行替换 ALT+255 字符的每个实例,您可能想使用:

alert($('option').val().replace(new RegExp(' ',g),'\n'));

显然这不是非常可取的,但是它应该可以满足您的需求。

例子

解决方法第 2 部分

(null)如前所述,而不是使用字符。尝试使用该&ensp;字符作为您的标记来执行替换,如下所示:

 <option>
    Shocka&ensp;Zooloo
 </option>

您可以复制 this 的内容( )以访问字符及其位置作为替换函数中的第一个参数。

//The character being replace is NOT a normal space
alert($('option').val().replace(' ','\n'));​

示例第 2 部分

于 2012-12-28T21:36:54.640 回答