回答編集履歴

2

修正しました。

2018/02/28 09:24

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -14,6 +14,32 @@
14
14
 
15
15
 
16
16
 
17
- - `.each(function () {` → `.each(function (i) {`
17
+ ~~- `.each(function () {` → `.each(function (i) {`~~
18
18
 
19
- - `'<span class="search_word">'` → `'<span class="search_word" id="sw_' + i + '">'`
19
+ ~~- `'<span class="search_word">'` → `'<span class="search_word" id="sw_' + i + '">'`~~
20
+
21
+
22
+
23
+ ```js
24
+
25
+ $(this).html(txt.replace(vue.header.search_box, '<span class="search_word">' + vue.header.search_box + '</span>')
26
+
27
+ ```
28
+
29
+ ↑これを、以下↓のように変更してみるといいと思います。
30
+
31
+
32
+
33
+ ```js
34
+
35
+ $(this).html(txt.replace(vue.header.search_box, function(){
36
+
37
+ return '<span class="search_word" id="sw_' + (i++) + '">' + vue.header.search_box + '</span>';
38
+
39
+ })
40
+
41
+ ```
42
+
43
+
44
+
45
+ `i`は`.each()`よりも外のスコープで`var i = 0;`みたいに宣言してください。m(_ _)m

1

追記

2018/02/28 09:23

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -3,3 +3,17 @@
3
3
 
4
4
 
5
5
  [replaceに変数を使ってグローバルマッチさせる2つの方法 - Qiita](https://qiita.com/naoyashiga/items/75bce8cabbbab29b0ccb)
6
+
7
+
8
+
9
+ #
10
+
11
+
12
+
13
+ また連番のidは例えば以下のような感じにすればいいと思います。
14
+
15
+
16
+
17
+ - `.each(function () {` → `.each(function (i) {`
18
+
19
+ - `'<span class="search_word">'` → `'<span class="search_word" id="sw_' + i + '">'`