質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JasperReports

JasperReportsはオープンソースの帳票生成ツールです。JasperReportはPDF, HTML, Microsoft Excel, ODT, XML等の様々なフォーマットのものをエクスポートします。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1518閲覧

変数の使用によって挙動が変わる理由がわかりません。

sekisam

総合スコア12

JasperReports

JasperReportsはオープンソースの帳票生成ツールです。JasperReportはPDF, HTML, Microsoft Excel, ODT, XML等の様々なフォーマットのものをエクスポートします。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/06/23 09:19

###前提・実現したいこと
100文字以上のテキストに対して[続きを読む]を表示させ、クリックで全文章を表示し[×] 閉じるを追加するスクリプトを書いているのですが、textTriming関数内で変数selfTextを使わないとうまく動かない原因がわかりません。どういった理由で発生しているのかご教授いただけますでしょうか。

###発生している問題

<!DOCTYPE html> <html xml:lang="ja" lang="ja"> <head> <meta charset="utf-8"> <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <style> #wrapper { margin: 0 auto; padding: 80px 0; width: 800px; text-align: left; } p { padding-bottom: 2em; visibility: hidden; } .textOpen { margin-left: 10px; color: #ff0000; font-weight: bold; } .textClose { margin-left: 10px; color: #666; font-weight: bold; } </style> <script> $(function(){ var cutElm = $('p'), cutCount = 100, openTxt = '… 続きを見る', closeTxt = '[×] 閉じる'; $('p').each(function(){ var self = $(this), selfText = self.text(), textLength = selfText.length, textTrim = selfText.substr(0,cutCount); function textTriming (){ self.html(self.text().substr(0,100)+'<a href="javascript:void(0);" class="textOpen">' + '… 続きを見る' + '</a>').css({visibility:'visible'}); self.find('.textOpen').on('click',function(){ self.html(self.text()).append('<a href="javascript:void(0);" class="textClose">' + '[×] 閉じる' + '</a>'); // self.html('self.text()')ではなく、変数selfTextを入れたself.html(selfText)でないと動かない理由がわからない var selfText2 = self.text() console.log(selfText2); self.find('.textClose').on('click',function(){ textTriming(); }); }); } if(100 < self.text().length){ textTriming(); }else if(100 >= self.text().length()){ self.css({visibility:'visible'}); } }); }); </script> </head> <body> <div id="wrapper"> <p>サンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプル</p> </div><!-- /#wrapper --> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

selfTextは 短くする前の文字が入ってますけど
self.text()だと 短くしちゃった文字が得られるだけですよね

投稿2016/06/23 09:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sekisam

2016/06/23 09:38

理解できました! ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問