質問するログイン新規登録

回答編集履歴

2

訂正

2020/02/13 23:13

投稿

ikatako
ikatako

スコア270

answer CHANGED
@@ -28,7 +28,6 @@
28
28
  $('.post').each(function() {
29
29
  // 全文を取得する
30
30
  var target = $(this).find('.target');
31
- console.log('target=', target);
32
31
  // 前半5文字を取得
33
32
  target.text( target.text().substr( 0, 5 ) );
34
33
  // 表示する
@@ -41,4 +40,4 @@
41
40
  ```CSS
42
41
  p{display:none;}
43
42
  ```
44
- [上記のコードを実行する](https://jsfiddle.net/09hacom2/)
43
+ [上記のコードを実行する](https://jsfiddle.net/b6q74w8g/)

1

訂正

2020/02/13 23:13

投稿

ikatako
ikatako

スコア270

answer CHANGED
@@ -1,11 +1,44 @@
1
+ ###できない理由
1
- ブログアクセスし時のトップ画面(http://ancyfamily.blog.fc2.com/)に、各記事(http://ancyfamily.blog.fc2.com/blog-entry-90.html)ごとの`<div id="summary"></div>`表示したい
2
+ JavaScriptはページ出力され結果ブラウザ側で後から操作するものです
2
3
 
3
- うことすか?
4
+ ゆえにトップ画面に、各記事の`<div id="summary">中身のテキスト</div>`がそもそも出力されてないのあれば、できません。
4
5
 
5
- でしたらJavaScriptではできません。(トップページにアクセスしたときに各記事のテーブルにAJAXで接続してそのsummary抜きしてくるみたいな変な実装をしない限り)
6
+ 「中身のテキスト」ご自身で力できますか?
6
7
 
7
- もしこれがやりたいのでしたらJavaScriptでなく、トップページを出力するときに各記事のテーブルからSQLで取得しておくという流れ実装しなければならないかと思います。
8
+ トップ画面には`<div id="summary"></div>`が現状出力されていまが、「中身のテキスト」は空になってまっているようです。
8
9
 
9
- JavaScriptはあくまで、そのページに出力された結果をブラウザ側でいじのです。
10
+ もしこれが出力きなければ素直<%topentry_body>を使って全文出力るのです。
10
11
 
12
+
13
+ ###解決策
14
+ もし全文では長いということでしたら、JavaScriptで部分的に切り抜いてみてはいかがでしょうか。
15
+
16
+ 以下のような記事一覧があったとしたら
17
+ ```HTML
18
+ <div class="post">
19
+ <p class="target">あいうえおかきくけこ</p>
20
+ </div>
21
+ <div class="post">
22
+ <p class="target">さしすせそたちつてと</p>
23
+ </div>
24
+ ```
25
+ こうして前半5文字に切り抜けます。
26
+ ```JavaScript
27
+ $(function() {
28
+ $('.post').each(function() {
29
+ // 全文を取得する
30
+ var target = $(this).find('.target');
31
+ console.log('target=', target);
32
+ // 前半5文字を取得
33
+ target.text( target.text().substr( 0, 5 ) );
34
+ // 表示する
35
+ target.css('display','block');
36
+ });
37
+ });
38
+
39
+ ```
40
+ 切り抜かれるまでは表示したくないでしょうから、CSSで非表示にしてあげましょう。
41
+ ```CSS
42
+ p{display:none;}
43
+ ```
11
- ゆえに、ブログにアクセスした時トップ画面(http://ancyfamily.blog.fc2.com/)に各記事の`<div id="summary"></div>`が出力されていないのでできません。
44
+ [上記コードを実行する](https://jsfiddle.net/09hacom2/)