0

私は4行にいくつかのコンテンツを持つdivを持っています。次のコードを使用して行数を取得できます。しかし、私の要件は、divの4行のテキストを取得することです。例えば:

<div>
   ut returns between paragraphsut returns between paragraphs
   ut returns between paragraphsut returns between paragraphs
   web ui text is going on hereut returns between paragraphsut 
   returns between paragraphs
</div>

上記のDIVでは、4行目のテキスト、つまり段落間を返したいのですが、これを行う方法はありますか?

次のコードで行数を取得しています

var content = elm.innerHTML;     
var elmHeight = elm.offsetHeight;
var lineHeight = 15;
var lines = elmHeight / lineHeight;

lines変数には、特定のDIVの行数があります

4

2 に答える 2

0

以下は私にとってFirefoxで機能します。IEでも動作するように採用できることを願っています。

<html>
  <head>
    <script language="javascript">
<!--

function find3rdline (element)
{
    var text = element.textContent;

    var begin = -1;
    var end = -1;
    var top = -1;
    var line = -1;
    for (i = 0; i < text.length; i++)
    {
        var id = "marker" + i;
        element.innerHTML = text.substr (0, i) + "<span id='" + id + "'>X</span>" + text.substr (i, text.length - i);
        var marker = document.getElementById (id);
        if (marker.offsetTop != top)
        {
            top = marker.offsetTop;
            line++;
            if (line == 2) begin = i;
            else if (line == 3)
            {
                end = i;
                // break;
            }
        }
    }

    element.innerHTML = text;

    if (begin == -1) return "";
    else if (end == -1) return text.substr (begin, text.length - begin);
    else return text.substr (begin, end - begin);
}

// -->
    </script>
  </head>
  <body onload="alert ('Third line is: [' + find3rdline (text) + ']')">
    <div id="text">
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce porttitor, leo non sollicitudin blandit, metus eros dapibus massa, nec euismod nunc sapien quis nunc. Maecenas mollis, justo sed egestas semper, nulla libero blandit sem, eget gravida ante sapien sagittis turpis. Vivamus sit amet elit tortor, a eleifend mi. Aliquam erat volutpat. Vestibulum sit amet pellentesque magna. Integer eget erat nisl. Suspendisse adipiscing placerat felis quis blandit. Etiam hendrerit tincidunt gravida. Nunc condimentum tristique commodo. Aliquam eget tellus et sapien accumsan cursus.  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce porttitor, leo non sollicitudin blandit, metus eros dapibus massa, nec euismod nunc sapien quis nunc. Maecenas mollis, justo sed egestas semper, nulla libero blandit sem, eget gravida ante sapien sagittis turpis. Vivamus sit amet elit tortor, a eleifend mi. Aliquam erat volutpat. Vestibulum sit amet pellentesque magna. Integer eget erat nisl. Suspendisse adipiscing placerat felis quis blandit. Etiam hendrerit tincidunt gravida. Nunc condimentum tristique commodo. Aliquam eget tellus et sapien accumsan cursus.
    </div>
  </body>
</html>
于 2013-03-01T11:37:14.613 に答える
0

var line_number=3; // 好みの行番号

var result= $.trm( $( '#mydiv' ).text() ).split( '\n' )[line_number];// mydiv は部門の ID

アラート (結果);

于 2013-03-01T11:45:40.720 に答える