Вы говорите, что span
в option
недопустимо, и все же это именно то, что вы пытаетесь добавить. Неверный код не выглядит красивее только потому, что он действителен во время загрузки, если вы знаете, что собираетесь испортить его позже. Так что действительно, если это ваша единственная задача, добавьте этот диапазон декларативно в ваш HTML, а не вставляйте его позже.
Но если вы хотите это исправить, я думаю, что это может помочь, если вы переписываете регулярное выражение, чтобы охватить весь тег. Во многих случаях IE не позволяет вам просто изменить HTML на что-либо, а использует собственное внутреннее представление для исправления кода в соответствии со своими предпочтениями. Например, когда вы пишете table
, IE всегда будет внутренне выводить tbody
, даже если в коде его нет. Таким же образом, если вы вводите <span>
, а </span>
нет, IE может вставить его самостоятельно. Чтобы обойти это, убедитесь, что вы вводите код целиком за один раз:
$(this).html($(this).html().replace(/\((.*?)\)/g,"<span>($1)</span>"));