質問編集履歴

8

2021/06/03 07:32

投稿

erp
erp

スコア46

test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,10 @@
16
16
 
17
17
 
18
18
 
19
+ また、ハイライトのコードと、上記のコードが機能しません。よく分からないです。
20
+
21
+
22
+
19
23
  ### 該当のソースコード
20
24
 
21
25
  ```js
@@ -122,7 +126,7 @@
122
126
 
123
127
  $('#search-text').on('input', function (e) {
124
128
 
125
- var v = $(e.currentTarget).val();
129
+ var v = $(this).val();
126
130
 
127
131
  $('.target-area p').each(function (i,ele) {
128
132
 
@@ -136,6 +140,22 @@
136
140
 
137
141
  });
138
142
 
143
+ $('#search-result__list p').each(function (i,em) {
144
+
145
+ var data = $(em).text();
146
+
147
+ var slice = data.slice( 0, 5 );
148
+
149
+ var res = slice.replace(/[^0-9]/g, '');
150
+
151
+ if (res !== "") data = data.replace(RegExp(res, 'g'), function (m) {
152
+
153
+ return '<span class="num">' + m + '</span>'
154
+
155
+ });
156
+
157
+ });
158
+
139
159
  });
140
160
 
141
161
  ```
@@ -212,31 +232,45 @@
212
232
 
213
233
  ```js
214
234
 
235
+ // searchWordの実行
236
+
237
+ $('#search-text').on('input', searchWord);
238
+
239
+ $('#search-text').on('input', function (e) {
240
+
215
- var i = 1;
241
+ var v = $(this).val();
216
-
242
+
217
- $('.title p').each(function () {
243
+ $('.target-area p').each(function (i,ele) {
218
-
244
+
219
- if (i < 10) {
245
+ var txt = $(ele).text();
220
-
246
+
221
- $(this).attr('data-num', '0' + i);
247
+ if (v !== "") txt = txt.replace(RegExp(v, 'g'), function (m) {
222
-
223
- } else {
248
+
224
-
225
- $(this).attr('data-num', i);
249
+ return '<span class="marker1">' + m + '</span>'
226
-
227
- }
250
+
228
-
229
- i++;
230
-
231
- });
251
+ });
252
+
232
-
253
+ });
254
+
255
+ $('#search-result__list p').each(function (i,em) {
256
+
257
+ var data = $(em).text();
258
+
259
+ var slice = data.slice( 0, 5 );
260
+
261
+ var res = slice.replace(/[^0-9]/g, '');
262
+
263
+ if (res !== "") data = data.replace(RegExp(res, 'g'), function (m) {
264
+
265
+ return '<span class="num">' + m + '</span>'
266
+
267
+ });
268
+
269
+ });
270
+
233
- ```
271
+ ```
234
-
235
- ターゲットエリアのp にdata-num で番号を振ってみたので、それをどうにか検索のときに取得して、検索結果のdata-に代入、css(attr)で取得できないかな、と思ったのですが、よくわからなくなりました。
272
+
236
-
237
-
238
-
239
- jsの txtのある p は取得できないのですか? エラになり
273
+ こちら、エラーないのに、どちらのコドも機能しせんなぜ?
240
274
 
241
275
 
242
276
 

7

a

2021/06/03 07:32

投稿

erp
erp

スコア46

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- 結果に出力された<p>の内容が、<p>112あのイーハトーヴォの</p> のように、数字と内容が一続きになってしまうのですが、どうすれば数字を<span>で囲めますか?
15
+ 結果(#search-result__list)に出力された<p>の内容が、<p>112あのイーハトーヴォの</p> のように、数字と内容が一続きになってしまうのですが、どうすれば数字を<span>で囲めますか?
16
16
 
17
17
 
18
18
 

6

a

2021/06/03 06:48

投稿

erp
erp

スコア46

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,14 @@
8
8
 
9
9
 
10
10
 
11
+ ---
12
+
13
+
14
+
15
+ 結果に出力された<p>の内容が、<p>112あのイーハトーヴォの</p> のように、数字と内容が一続きになってしまうのですが、どうすれば数字を<span>で囲めますか?
16
+
17
+
18
+
11
19
  ### 該当のソースコード
12
20
 
13
21
  ```js

5

a

2021/06/03 06:41

投稿

erp
erp

スコア46

test CHANGED
File without changes
test CHANGED
@@ -8,32 +8,8 @@
8
8
 
9
9
 
10
10
 
11
- ### 発生している問題・エラーメッセージ
12
-
13
-
14
-
15
- ```
16
-
17
- Uncaught TypeError: txt.parent is not a function
18
-
19
- ```
20
-
21
- ここが該当のコードです。
22
-
23
- ```
24
-
25
- console.log( txt.parent('p').data('num') );
26
-
27
- ```
28
-
29
-
30
-
31
-
32
-
33
11
  ### 該当のソースコード
34
12
 
35
-
36
-
37
13
  ```js
38
14
 
39
15
  // keywords search

4

2021/06/03 06:35

投稿

erp
erp

スコア46

test CHANGED
File without changes
test CHANGED
@@ -42,11 +42,11 @@
42
42
 
43
43
  var searchResult,
44
44
 
45
- searchText = $(this).val(), // 検索ボックスに入力された値
45
+ searchText = $(this).val(), // 検索ボックスに入力された値
46
-
46
+
47
- targetText,
47
+ targetText,
48
-
48
+
49
- hitNum;
49
+ hitNum;
50
50
 
51
51
  // 検索結果を格納するための配列を用意
52
52
 
@@ -62,7 +62,7 @@
62
62
 
63
63
  if (searchText != '') {
64
64
 
65
- $('.target-area p').each(function () {
65
+ $('.target-area p').each(function (ele) {
66
66
 
67
67
  targetText = $(this).text();
68
68
 
@@ -98,6 +98,138 @@
98
98
 
99
99
  var i = 1;
100
100
 
101
+ $('.target-area.al p').each(function () {
102
+
103
+ if (i < 10) {
104
+
105
+ $(this).attr('data-num', '0' + i);
106
+
107
+ } else {
108
+
109
+ $(this).attr('data-num', i);
110
+
111
+ }
112
+
113
+ i++;
114
+
115
+ });
116
+
117
+ $('.target-area p').each(function (i,ele) {
118
+
119
+ $(ele).wrapInner('<span></span>');
120
+
121
+ if( i+1 < 10 ) {
122
+
123
+ var num = $('<span>').attr("class","num").text('0'+(i+1));
124
+
125
+ } else {
126
+
127
+ var num = $('<span>').attr("class","num").text(i+1);
128
+
129
+ }
130
+
131
+ $(ele).prepend(num);
132
+
133
+ });
134
+
135
+ // searchWordの実行
136
+
137
+ $('#search-text').on('input', searchWord);
138
+
139
+ $('#search-text').on('input', function (e) {
140
+
141
+ var v = $(e.currentTarget).val();
142
+
143
+ $('.target-area p').each(function (i,ele) {
144
+
145
+ var txt = $(ele).text();
146
+
147
+ if (v !== "") txt = txt.replace(RegExp(v, 'g'), function (m) {
148
+
149
+ return '<span class="marker1">' + m + '</span>'
150
+
151
+ });
152
+
153
+ });
154
+
155
+ });
156
+
157
+ ```
158
+
159
+ ```html
160
+
161
+ <div class="search-area">
162
+
163
+ <form>
164
+
165
+ <input type="text" id="search-text" placeholder="keyword search">
166
+
167
+ </form>
168
+
169
+ <div class="search-result">
170
+
171
+ <div class="search-result__hit-num"></div>
172
+
173
+ <div id="search-result__list"></div>
174
+
175
+ </div>
176
+
177
+ </div>
178
+
179
+ <div class="target-area title">
180
+
181
+ <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
182
+
183
+ <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
184
+
185
+ <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
186
+
187
+ </div>
188
+
189
+ ```
190
+
191
+ ```css
192
+
193
+ .title .num, #search-result__list p .num {
194
+
195
+ position: absolute;
196
+
197
+ counter-increment: cnt;
198
+
199
+ content: counter(cnt, decimal-leading-zero);
200
+
201
+ margin-left: -2.5rem;
202
+
203
+ padding: 0;
204
+
205
+ color: var(--text);
206
+
207
+ }
208
+
209
+ .title p, #search-result__list p {
210
+
211
+ margin-left: 4rem
212
+
213
+ }
214
+
215
+ .title p .num, #search-result__list p .num {
216
+
217
+ margin-left: -3rem
218
+
219
+ }
220
+
221
+ ```
222
+
223
+
224
+
225
+ ### 試したこと
226
+
227
+
228
+
229
+ ```js
230
+
231
+ var i = 1;
232
+
101
233
  $('.title p').each(function () {
102
234
 
103
235
  if (i < 10) {
@@ -114,120 +246,6 @@
114
246
 
115
247
  });
116
248
 
117
- // searchWordの実行
118
-
119
- $('#search-text').on('input', searchWord);
120
-
121
- $('#search-text').on('input', function (e) {
122
-
123
- var v = $(this).val();
124
-
125
- $('.target-area p').each(function (i,ele) {
126
-
127
- var txt = $(ele).text();
128
-
129
- if (v !== "") txt = txt.replace(RegExp(v, 'g'), function (m) {
130
-
131
- return '<span class="marker1">' + m + '</span>'
132
-
133
- });
134
-
135
- });
136
-
137
- });
138
-
139
- ```
140
-
141
- ```html
142
-
143
- <div class="search-area">
144
-
145
- <form>
146
-
147
- <input type="text" id="search-text" placeholder="keyword search">
148
-
149
- </form>
150
-
151
- <div class="search-result">
152
-
153
- <div class="search-result__hit-num"></div>
154
-
155
- <div id="search-result__list"></div>
156
-
157
- </div>
158
-
159
- </div>
160
-
161
- <div class="target-area title">
162
-
163
- <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
164
-
165
- <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
166
-
167
- <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
168
-
169
- </div>
170
-
171
- ```
172
-
173
- ```css
174
-
175
- #search-result__list p, .title p {
176
-
177
- position: relative;
178
-
179
- margin-left: 2.75rem;
180
-
181
- }
182
-
183
- title p::before {
184
-
185
- position: absolute;
186
-
187
- counter-increment: cnt;
188
-
189
- content: counter(cnt, decimal-leading-zero);
190
-
191
- margin-left: -2.5rem;
192
-
193
- padding: 0;
194
-
195
- }
196
-
197
- .title {
198
-
199
- counter-reset: cnt;
200
-
201
- }
202
-
203
- ```
204
-
205
-
206
-
207
- ### 試したこと
208
-
209
-
210
-
211
- ```js
212
-
213
- var i = 1;
214
-
215
- $('.title p').each(function () {
216
-
217
- if (i < 10) {
218
-
219
- $(this).attr('data-num', '0' + i);
220
-
221
- } else {
222
-
223
- $(this).attr('data-num', i);
224
-
225
- }
226
-
227
- i++;
228
-
229
- });
230
-
231
249
  ```
232
250
 
233
251
  ターゲットエリアのp にdata-num で番号を振ってみたので、それをどうにか検索のときに取得して、検索結果のdata-に代入、css(attr)で取得できないかな、と思ったのですが、よくわからなくなりました。

3

2021/06/03 06:34

投稿

erp
erp

スコア46

test CHANGED
File without changes
test CHANGED
@@ -118,15 +118,13 @@
118
118
 
119
119
  $('#search-text').on('input', searchWord);
120
120
 
121
- $('#search-text').on('input', function () {
121
+ $('#search-text').on('input', function (e) {
122
122
 
123
123
  var v = $(this).val();
124
124
 
125
- $('.target-area p').each(function () {
125
+ $('.target-area p').each(function (i,ele) {
126
-
126
+
127
- var txt = $(this).text();
127
+ var txt = $(ele).text();
128
-
129
- console.log( txt.parent('p').data('num') );
130
128
 
131
129
  if (v !== "") txt = txt.replace(RegExp(v, 'g'), function (m) {
132
130
 
@@ -134,106 +132,104 @@
134
132
 
135
133
  });
136
134
 
137
- $(this).html(txt);
138
-
139
135
  });
140
136
 
137
+ });
138
+
139
+ ```
140
+
141
+ ```html
142
+
143
+ <div class="search-area">
144
+
145
+ <form>
146
+
147
+ <input type="text" id="search-text" placeholder="keyword search">
148
+
149
+ </form>
150
+
151
+ <div class="search-result">
152
+
153
+ <div class="search-result__hit-num"></div>
154
+
155
+ <div id="search-result__list"></div>
156
+
157
+ </div>
158
+
159
+ </div>
160
+
161
+ <div class="target-area title">
162
+
163
+ <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
164
+
165
+ <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
166
+
167
+ <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
168
+
169
+ </div>
170
+
171
+ ```
172
+
173
+ ```css
174
+
175
+ #search-result__list p, .title p {
176
+
177
+ position: relative;
178
+
179
+ margin-left: 2.75rem;
180
+
181
+ }
182
+
183
+ title p::before {
184
+
185
+ position: absolute;
186
+
187
+ counter-increment: cnt;
188
+
189
+ content: counter(cnt, decimal-leading-zero);
190
+
191
+ margin-left: -2.5rem;
192
+
193
+ padding: 0;
194
+
195
+ }
196
+
197
+ .title {
198
+
199
+ counter-reset: cnt;
200
+
201
+ }
202
+
203
+ ```
204
+
205
+
206
+
207
+ ### 試したこと
208
+
209
+
210
+
211
+ ```js
212
+
213
+ var i = 1;
214
+
215
+ $('.title p').each(function () {
216
+
217
+ if (i < 10) {
218
+
219
+ $(this).attr('data-num', '0' + i);
220
+
221
+ } else {
222
+
223
+ $(this).attr('data-num', i);
224
+
225
+ }
226
+
227
+ i++;
228
+
141
229
  });
142
230
 
143
231
  ```
144
232
 
145
- ```html
146
-
147
- <div class="search-area">
148
-
149
- <form>
150
-
151
- <input type="text" id="search-text" placeholder="keyword search">
152
-
153
- </form>
154
-
155
- <div class="search-result">
156
-
157
- <div class="search-result__hit-num"></div>
158
-
159
- <div id="search-result__list"></div>
160
-
161
- </div>
162
-
163
- </div>
164
-
165
- <div class="target-area title">
166
-
167
- <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
168
-
169
- <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
170
-
171
- <p>あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</p>
172
-
173
- </div>
174
-
175
- ```
176
-
177
- ```css
178
-
179
- #search-result__list p, .title p {
180
-
181
- position: relative;
182
-
183
- margin-left: 2.75rem;
184
-
185
- }
186
-
187
- title p::before {
188
-
189
- position: absolute;
190
-
191
- counter-increment: cnt;
192
-
193
- content: counter(cnt, decimal-leading-zero);
194
-
195
- margin-left: -2.5rem;
196
-
197
- padding: 0;
198
-
199
- }
200
-
201
- .title {
202
-
203
- counter-reset: cnt;
204
-
205
- }
206
-
207
- ```
208
-
209
-
210
-
211
- ### 試したこと
212
-
213
-
214
-
215
- ```js
216
-
217
- var i = 1;
218
-
219
- $('.title p').each(function () {
220
-
221
- if (i < 10) {
222
-
223
- $(this).attr('data-num', '0' + i);
224
-
225
- } else {
226
-
227
- $(this).attr('data-num', i);
228
-
229
- }
230
-
231
- i++;
232
-
233
- });
234
-
235
- ```
236
-
237
233
  ターゲットエリアのp にdata-num で番号を振ってみたので、それをどうにか検索のときに取得して、検索結果のdata-に代入、css(attr)で取得できないかな、と思ったのですが、よくわからなくなりました。
238
234
 
239
235
 

2

2021/05/25 13:39

投稿

erp
erp

スコア46

test CHANGED
File without changes
test CHANGED
@@ -18,6 +18,16 @@
18
18
 
19
19
  ```
20
20
 
21
+ ここが該当のコードです。
22
+
23
+ ```
24
+
25
+ console.log( txt.parent('p').data('num') );
26
+
27
+ ```
28
+
29
+
30
+
21
31
 
22
32
 
23
33
  ### 該当のソースコード

1

2021/05/25 11:57

投稿

erp
erp

スコア46

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- リアルタイム検索で、ターゲットエリアの文章にcss counterで文頭に番号を振っています。検索結果にもその番号を反映させたいのですがやり方が分かりません。
5
+ リアルタイム検索で、ターゲットエリアの文章にcss counterで文頭に番号を振っています。検索結果にもその番号を反映させたいのですがやり方が分かりません。大幅にコードを書き替えることなく、書き足す形で実現したいです。
6
+
7
+ 参考:https://www.tam-tam.co.jp/tipsnote/javascript/post11315.html
6
8
 
7
9
 
8
10