• ベストアンサー

jQueryで文字数を丸めたい

■やりたいこと jQueryを利用して、文字を取得して表示させているのですが、 ある一定数以上の文字は切り取った上に、最後に…を付けて、表示させたいです。 ■現状 title = jQuery(Rss.feedContents).find("title").text(); ■試したこと title = jQuery(Rss.feedContents).find("title").text().substring(0,9)+"…"; これだと、常に…が付与されてしまいます。 jQueryで文字数を丸める際は、普通、どうするのでしょうか?

  • re999
  • お礼率61% (476/777)

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

jqueryでの処理はわかりませんが… 10文字以上だったら、省略して「…」を加える処理を行うようにすればよいのでは?  var title = jQuery(Rss.feedContents).find("title").text();  if (title.length>10) title = title.substring(0,9) + "…";

re999
質問者

お礼

回答ありがとうございました!

関連するQ&A

  • jQueryで文字数カウンタ(複数対応)

    jQueryのプラグインを作成中です。 指定したテキストフォーム、テキストエリア内の文字数をカウントして、 指定場所に文字数を表示させるというものです。 下記のように記述し、 (function(jQuery) { jQuery.fn.textCount = function(options) { //キーボードが押された時にカウント jQuery(this).live("change keyup",function(){ var count = jQuery(this).val().length; var disp_area = jQuery(this).attr("id"); jQuery("."+disp_area).html(count+"文字"); }); return this; }; })(jQuery); jQuery(".counter").txtCount(); とHTML内で宣言しました。 <textarea id="sample">ここの文字数が</textarea> <div class="sample">ここに表示</div> と、ここまではうまくいきました。 が、テキストエリアの数が複数個あり、数が変動するため、IDを配列にしたいと思っています。 そこで、 <textarea id="sample[1]">個々の文字が</textarea> <div class="sample[1]">ここに表示されない</div> のように記述しました。 すると文字数が表示されなくなってしまいました。 classやidに配列指定はできないのでしょうか。 また、この場合はどのように宣言するのが正しいのでしょうか。

  • jqueryでRSS内のdc:dateなどの要素の取得方法

    jqueryを使用してRSSのdc:dateやdc:subjectなどの要素を取得するにはどうしたらよいでしょうか。 現在以下のようなコードにしていまして、なんとなく取得したRSSの最初に書いてあるxmlns:dc="http://purl.org/dc/elements/1.1/" となってる部分を利用すればいいのかなと思い立ち、children関数などを使ってみましたが取得できませんでした。 $.ajax({ url: settings.xmllocation, async: true, cache: false, dataType: "xml", success: function(xml) { $(xml).find('item').each(function() { var title = $(this).find('title').text(); var url = $(this).find('link').text(); var date = $(this).children('http://purl.org/dc/elements/1.1/').find('dc:date').text(); var element = $('<div><a href="' + url + '">' + title + '('+date+')</a></div>'); $(container).append(element); elements.push(element); }); });

  • jquery xmlのlinkが空の<a>タグ

    jquery ajaxでサイトのRSSを読み込み表示させるスクリプトです。RSS2.0形式のxml要素のlink内が空の場合、<a>タグを入れたくないのですが、下のスクリプトだと、IE8では、<a>タグが入りませんが、firefoxでは入ってしまいます。 ************** $(xml).find('item').each(function(i){ if ( i > 4 ) { return false; } var title = $(this).find('title').text(); var url = $(this).find('link').text(); var date = $(this).find('pubDate').text(); //日付を整形 date = dateChanger(date); if(url==""){ $('#feedList dl').append('<dt>' + date[0] +'<\/dt>'+ '<dd>'+ title+'<\/dd>'); } else { $('#feedList dl').append('<dt>' + date[0] +'<\/dt>'+ '<dd><a href="' + url + '">' + title + '<\/a><\/dd>'); } }); **************** どの部分が原因でしょうか。どうぞご教示ください。

  • jQueryで最後の1文字を消したい

    tableのtd要素内のテキストの最後の文字をjQueryで消したいのですが、うまくいきません。 どのようにしたらよいでしょうか? 【HTML】 <table> <tr><td>あああ</td><td class="iii">いいいい</td></tr> </table> 【JavaScript】 var str = $('.iii').text(); var str2 = str.slice(0, -1); $('.iii').text(str2);

  • 文字の数を数えたいんです

    携帯電話などにメールを送信するとき、送信できる文字数に制限がある場合 が多くなっています(というか、100%ありますね)。 ところが送信する側からは、文字数を数えるのは難しいのが現状です。 また、このサイトで書き込みをするときも文字数が気になります(^^; 私はメールに限らず、文書作成はテキストエディタを使用することが多いの ですが、こういう場合に文字数を数えられるテキストエディタはありません でしょうか? 私はDanaを愛用していますが、そのような機能はないようで… なお、シェアウェアでも結構です。

  • 文字列の取得

    string.subString()のなどで文字列を指定文字数分取得する場合に、バイト数指定で取得する方法ってありますか? 教えてください。

    • ベストアンサー
    • Java
  • jQuery Mobile

    jQuery Mobileでは1つのHTMLファイルに複数ページを記述するようですが テキストボックスに記載した文字を別のページに表示するにはどのようにするのでしょうか

    • ベストアンサー
    • AJAX
  • plpgsqlでのbyte数指定での文字切り出し

    postgresql(plpgsql)にて、byte数指定での文字列切り出しを行いたいのですが、よい手法などありませんか? substr(substring)だと、文字数の指定となり、対象がマルチバイト、シングルバイト文字混在だと意図した値が取得できません。 ※Oracleのsubstrbに相当するものです。 ※select substr(カラム, 1, 20) from ...的な取得がしたいです。 よろしくお願いします。

  • Jqueryについて困っております><

    はじめまして jqueryに触れる事が初めてなのですが、緊急にクライアントの要望に応える形になり困っております… 1つめは、gifアニメ風にマウスをあてると絵が動くという物なのですが、それが1ページ内に動かしたい対象が複数ある場合の設定方法です。 >>http://suzken.com/2010/10/jquery-img-anime.html こちらの方のHPで動かし方がありましたが、この複数のやり方が分かりません。 2つ目は、上記gifアニメ風のアイコンにマウスカーソルをあてた時に動きを見せる+吹き出しの様なメニューが表示され、1文字ずつテキスト表示させたい。です。 吹き出しの様な物を表示させる事と、文字を出すことはできたのですが、マウスオーバーした瞬間に1文字表示が始まってしまい、マウスを離しても文字だけが画面上に残ってしまいます。 色々調べながら調整してはいるのですが、中々うまくいかず… 何か解決策がありましたら、お手数ではありますが何卒お力をお貸しいただきたいです><

  • jQueryの戻り値がうまくいかない・・・

    jQueryでXMLを読み込んでパースした値を戻り値として返す関数を作っているのですが、なぜか動作しません。 すみませんがどこがいけないのか教えていただけないでしょうか? -- JS ---------------------- function getValueXML(){   var value = "初期値";   jQuery.ajax({     url: "/text.xml",     type: 'get',     dataType: 'xml',     timeout: 1000,     success: parse_suc,     error: parse_err   });   function parse_suc(xml){    value = $(xml).find("hoge").text();   }   function parse_err(){    alert("XMLの取得に失敗しました");   }   return value; } -- test.xml --------------------- <?xml version="1.0" encoding="UTF-8"?> <root>   <hoge>テスト</hoge> </root> このgetValueXML関数を実行すると戻り値には"初期値"が返ってきます。 試しにparse_suc関数を以下のようにしてみたら"テスト"がアラート表示されました。 つまりparse_suc関数内ではXMLのパースがうまくいっているようなのです。 function parse_suc(xml){   value = $(xml).find("hoge").text();   alert(value); } しかしparse_suc関数を出るとvalueにはその値が引き継がれません。 valueのスコープがjQueryだとどういう風になっているのかよくわからなく、ずっと悩んでいます。 お手数ですがおわかりの方がいましたらご説明頂ければと思います。

専門家に質問してみよう