2016-04-22 17 views
2

私はhtml(divやスクリプト)をajaxレスポンスで提供しています。現在、私は、スクリプトのすべてをフィルタリングし、そのようにそれを実行することができます。私は必要なもの特定の部門のスクリプトを実行してスクリプトを実行します

$(response).filter("script").each(function (i) { 
     eval($(this).text()); 
}); 

しか対応しています特定のDIVからスクリプトを実行する方法です。どうやってやるの? jQueryので剥ぎ取られる「specificDiv」から

$(response).filter("#specificDiv").filter("script").each(function (i) { 
          eval($(this).text()); 
         }); 

が動作しない、すべてのスクリプト:jQueryのは、私はこのような何かを行う場合は、すべてのスクリプトを剥ぎ取るようです。

JQueryはすべてのスクリプトを削除して私を殺しています。スクリプトとしてタグ名いる#specificDivなくその子要素のオブジェクトにスクリプトタグを見つけようとしているためである

おかげ

答えて

2

まあ。 フィルタは、選択した要素から要素のサブセットを選択します。これは#specificDivです。あなたがにフィルタ機能を変更する必要が

:これは動作しているようです

$(response).filter("#specificDiv script").each(function (i) { 
         eval($(this).text()); 
        }); 
+0

は、あなたが、これはjQueryの1.8.3で動作しない理由にコメントすることができるだろうか? – AzureCloudDev

+0

@AzureCloudDev:これはバージョンとは関係ありません。あなたはフィルタイベントとfindを混同しています。 –

+0

これは実際には動作していないようですが、evalの直前に警告文を入れても実行されません。しかし、今私のコードは、私が$(text).filter( 'specificDiv')をしたときに、Htmlだけを取得する前に動作しています。すべてのスクリプトを削除していた 'specificDiv'の新しいhtmlを取得するには、htmlとscriptが得られ、スクリプトは自動的に実行されます。私がしたのは、jQueryのバージョンを1.8.3から1.12.3に変更することでした。 – AzureCloudDev

関連する問題