0

私の文字列:

"<SPAN style=\"COLOR: #000000; PADDING-RIGHT: 30px\">Reason 1:</SPAN> My Text Here!"

インターネットエクスプローラ:

"SPANstyleCOLOR000000PADDINGRIGHT30pxReason1SPANMyTextHere"

その他のブラウザ:

"Reason1BankbeatingexchangeratesCompareourratestoday"

// Remove all characters, keep alphanumerical + spaces 
reasonTitleSpaces = reasonTitle.replace(/[^A-Za-z0-9\s]+/g, '');

// Remove all characters, keep alphanumerical
reasonTitle = reasonTitle.replace(/[^A-Za-z0-9]+/g, '');
4

2 に答える 2

1

文字列として操作する代わりに、jQueryAPIを使用してリンクを作成できます...

これにより、より良い結果とブラウザ間の互換性が得られます。

の代わりにreasonTitle = $(this).html();、DOM構造のクローンを作成して、ページを変更せずに自由に操作できるようにします。

<script>
reasonTitle = $(this).clone();

//Remove the span tag, now you have only the reason
reasonTitle.find('span').remove()

//Get the text value
reasonTitle = $.trim(reasonTitle.text());

//Create the anchor
anchorLink = $("<a />",{id:'anchor', name:reasonTitle})
$(this).parent().before(anchorLink);

//You don't need to count your `<li>`, use `<ol>` for ordinal lists
//Create the link:
$("<a />",{href:'#'+reasonTitle}).click(function(){
    _gaq.push(['_trackEvent', experimentConversionReference, 'ReasonClicked', $(this).text()]);
}).text(reasonTitle );
</script>
于 2012-12-07T12:57:56.647 に答える
0

私はそれが汚いことを知っていますが、それは仕事をします

// Remove extras for IE
reasonTitle = reasonTitle.split("Reason").slice(1).join("Reason");
reasonTitleSpaces = reasonTitleSpaces.split("Reason").slice(1).join("Reason");

// Remove any extra occurances of "span" for IE
reasonTitle = reasonTitle.replace("SPAN","");
reasonTitleSpaces = reasonTitleSpaces.replace("SPAN","");
于 2012-12-07T13:12:57.733 に答える