2012-01-12 3 views
0

のは、私はHTMLでの2つのプレースホルダがあるとしましょう。)jQueryのプレースホルダの置換

[$[SKU001]$] 
[$[SKU002]$] 

を、私は1)SKU001とSKU002を取得し、API 2にAJAXによって提出する配列に入れたいです両方のプレースホルダを置換する、APIレスポンスで得られた画像タグ、のは、言うことができます:

<img src="SKU001.jpg"> 
<img src="SKU002.jpg"> 

私は、この使用してjQueryとそのフィルタ/マッチ方法を達成したいと思います。 可能ですか?

私はこれをプリントアウトしようとしている:

var pattern = /\[\$\[(.*?)\]\$\]/; 
var t = $('body').filter(function() { 
    return this.??.match(pattern); 
}); 

console.log(t); 

を、私は私のパターンで検索パラメータを取得することはできませんよ。

ありがとうございました。

答えて

0

.filter()メソッドはそのようには機能しません。これは、ページコンテンツではなく、DOM要素をフィルタリングするためのものです。良いことだ

var matches = $('body').text().match(/\[\$\[(.*?)\]\$\]/) 
console.log(matches); 
+0

:あなたが何をしたいか

はの方向に、おそらくもっとあります!パターンの最後に "/ g"を追加すると、グローバルにも検索することができます。しかし、どのように "SKU001"、 "SKU002"配列を達成するために?実際のパターンを使用すると、["[$ [SKU001] $]"、 "[$ [SKU002] $]"]のみが生成されます。 – redbaron76

+0

JSのRegExで 'g'フラグを使用すると、完全にマッチするだけのトレードオフです。テキストのビットが始めと終わりに常に '[$ ['と '] $] 'を持つ場合、各結果に' String.slice(3、-3) 'を使ってそれらのビットをトリミングして真ん中の部分。 [jQuery.each](http://api.jquery.com/jQuery.each/)はそれに便利です。 –

関連する問題