- ベストアンサー
JavaScriptで表示文字数を制御したい
- Google Feed APIを使い、JavaScriptで自分のホームページにRSSのニュースを表示しています。文字の大きさと行間は、以下のようなcssを書くことによって調整できましたが、現在の状態だと全部のニュースを表示してしまうので表示する文字数を「先頭から40文字」までにしたいのですが、そのやり方が分かりません。
- 具体的に、どうすればよいのか、ご教示いただければと思っています。大変困っているので、何卒よろしくお願い致します。
- 以下、参考までにjavascriptも載せておきます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
たんじゅんに、 #feed li { height : 4em; width : 15em; text-overflow : ellipsis; overflow : hidden; white-space: nowrap; } では だめですか? もしくは、ぜんかくくうはくをはんかくにして <!DOCTYPE html> <meta charset='UTF-8'> <title></title> <style> #feed { font-size:16px; } #feed li { height : 4em; } </style> <body> <ol id='feed'></ol> <script type='text/javascript' src='http://www.google.com/jsapi'></script> <script> google.setOnLoadCallback (function () { var url = 'http://okwave.jp/rss.php?type=recent_answered_question&c=254'; var feed = new google.feeds.Feed (url); feed.setNumEntries (10); feed.load (function (result) { if (! result.error) { var doc = document; var FGM = doc.createDocumentFragment (); var LI = doc.createElement ('LI'); var A = doc.createElement ('A'); var title = doc.createTextNode (''); var date = doc.createTextNode (''); A.target = '_blank' ; A.appendChild (title); A.appendChild (doc.createElement ('BR')); A.appendChild (date); LI.appendChild (A); for (var i = 0, I = result.feed.entries.length; i < I; i++) { var entry = result.feed.entries[i]; var d = new Date(entry.publishedDate); A.href = entry.link; title.data = entry.title.substring (0, 39);//←ここ date.data = ['(', d.getFullYear (), '年', d.getMonth () +1, '月', d.getDate (), '日', ')'].join (''); FGM.appendChild (LI.cloneNode (true)); } doc.getElementById ('feed').appendChild (FGM); } }); }); google.load ('feeds', '1'); </script> とか… いちいち、createDocument するよりも、ひながた から、cloneNode でこぴーして createDocumentFragment で、つくったものに、appendChild しています。 はやいから!?
お礼
babu_baboo様 アドバイスいただきまして、誠にありがとうございました! #feed li { height : 4em; width : 15em; text-overflow : ellipsis; overflow : hidden; white-space: nowrap; } で、できました! cssで制御すれば簡単だったんですね! とても、目から鱗でした! 大変感謝いたします!