2011-06-27 17 views
0
if ($(".productpage .description").html() != null) { 

    var textToHide = $('.productpage .description').html().split('<br class="breakHere">')[1]; 
    var visibleText = $('.productpage .description').html().split('<br class="breakHere">')[0]; 
} 

Firefoxではうまく動作しますが、IEとChromeのtextToHideとvisibleTextは未定義です。私は何か見落としてますか?おかげjquery/javascript - 単純な分割()問題

+2

あなたのhtmlをうまく追加;) – Nathan

+1

サンプルHTMLも貼り付けることができますか?正確に何をしようとしているのですか?これにアプローチするより良い方法があるように感じます。 – Niklas

+0

セレクタの結果をキャッシュする必要があります。 '$( '。productpage .description')'は、特にIE 7とIE 6では特に高速ではありません。再利用できる変数に結果を格納し、パフォーマンスが向上します。 –

答えて

1

はあなたの$('.productpage .description').html()、あなたがHTMLに対してsplit()を使用して<br />

+0

:IEは
Chromeにそれを変更するいくつかの理由 だけでキャッシュの問題でした。ご協力いただきありがとうございます – y0han

1

を取得することができるを見る良いアイデアを私見ではありません - それはあまりにも脆くだし、HTMLに対して正規表現のを使用して同じ問題を被る可能性があります。

このしようと、あなたが分割しようとしている要素は<br>要素を持つすべての兄弟であると仮定すると:これはあなたにそれらの要素を含むjQueryのオブジェクトを与えること

var $el = $('.productionpage .description'); // find the element 
var $br = $('br.breakHere', $el);   // find the BR inside it 

var $vis = $br.prevAll();    // contains everything before the break 
var $hide = $br.nextAll();   // contains everything after the break 

は注意ではなく、それらのHTMLテキストを。