2012-01-12 118 views
0

比方说,我在我的HTML两个占位符:jQuery的占位符代替

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

,我想1)获得SKU001和SKU002并把它们放在一个数组由AJAX提交的API 2)替代与两个占位符,可以说,通过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 2012-01-12 13:17:26

+0

在JS的RegEx中使用'g'标志时,你只会得到整个匹配。如果文本的位在开始和结束时总是有'[$ ['和'] $]',则可以对每个结果使用'String.slice(3,-3)'来修剪这些位,并获取部分在中间。 [jQuery.each](http://api.jquery.com/jQuery.each/)可能会派上用场。 – 2012-01-13 00:31:04