我如何检查线是否为空然后不显示?

时间:2014-05-03 20:38:31

标签: javascript jquery

这是我在javascript中使用的部分,用于从文本文件中读取行并将它们添加到jquery插件newsticker中:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://risq.github.io/jquery-advanced-news-ticker/assets/js/jquery.newsTicker.js"></script>
<style>
.newsticker {
    max-width: 620px;
    margin: auto;
}

.newsticker li {
    color: #4e4e4e;
    background: #F2F2F2;
    overflow: hidden;
    height: 28px;
    padding: 10px;
    line-height: 30px;
    list-style: none;
    font-size: 20px;
    text-align: left;
    border-bottom: 1px dotted #2c8162;
}

.newsticker li:hover {
    background: #FFF;
}
</style>
<script>
   $('body').find('.newsticker').remove();//It will clear old data if its present 
   var file = "http://newsxpressmedia.com/files/theme/test.txt";
    $.get(file, function (txt) {
            //var lines = txt.responseText.split("\n");
            var lines = txt.split("\n");
            $ul = $('<ul class="newsticker" />');
            for (var i = 0, len = lines.length; i < len; i++) {
                //save(lines[i]); // not sure what this does
                $ul.append('<li>' + lines[i] + '</li>'); //here 
            }
            //$ul.appendTo('body').newsTicker({
            $ul.appendTo('div.wcustomhtml').newsTicker({
                row_height: 48,
                max_rows: 2,
                speed: 6000,
                direction: 'up',
                duration: 1000,
                autostart: 1,
                pauseOnHover: 1
            });
    });
</script>

文本文件中的内容格式如下所示:

Hello everyone
5/3/2014

Hi world
5/3/2013

This is a test
6/3/2012

我希望每次都能在插件jquery中显示两行,例如,这是两行:

Hi world
5/3/2013

然后在这两行后面有空行空间,所以不要显示它。接下来的两行。 所以在插件jquery newsTicker中,我应该看到文本滚动如下:

Hello everyone
5/3/2014
Hi world
5/3/2013
This is a test
6/3/2012

每次两行没有空格/空行。 一般情况下它可以正常工作,但它也会显示空/空行。

编辑**

这是文本文件内容的样子:

http://textuploader.com/rl0v

该文本是希伯来语,但例如,这是两行:

דיווח:ראמימחלוף,מבכירימשטרושלאסד,עזבעםמשפחתואתסוריה.מבזקים。 דווחבמקורבתאריך:07.04.14

然后有空行然后另外两行。 我希望每次在jquery newsticker中显示这两行,并将它们向上滚动为一行两行。

4 个答案:

答案 0 :(得分:1)

检查循环中行的长度是否大于0:

for (var i = 0, len = lines.length; i < len; i++) {
     //save(lines[i]); // not sure what this does
     if (lines[i].length>0)
          $ul.append('<li>' + lines[i] + '</li>'); //here 
 }

答案 1 :(得分:1)

如何更改行for循环的步骤:

   $('body').find('.newsticker').remove();//It will clear old data if its present 
   var file = "http://newsxpressmedia.com/files/theme/test.txt";
    $.get(file, function (txt) {
            //var lines = txt.responseText.split("\n");
            var lines = txt.split("\n");
            $ul = $('<ul class="newsticker" />');
            for (var i = 0, len = lines.length; i < len; i+=3) {  // step: 3
                //save(lines[i]); // not sure what this does
                $ul.append('<li>' + lines[i] + '</li>'); //here 
                $ul.append('<li>' + lines[i+1] + '</li>');
            }
            //$ul.appendTo('body').newsTicker({
            $ul.appendTo('div.wcustomhtml').newsTicker({
                row_height: 48,
                max_rows: 2,
                speed: 6000,
                direction: 'up',
                duration: 1000,
                autostart: 1,
                pauseOnHover: 1
            });
    });

答案 2 :(得分:0)

它看起来好像你需要在追加它之前检查该行是否为空。

for (var i = 0, len = lines.length; i < len; i++) {
    // check if an empty line
    if(lines[i] != ""){
        $ul.append('<li>' + lines[i] + '</li>'); 
    }
}

答案 3 :(得分:0)

假设您要在单个litrim行显示文字,并检查它是否为空,请将其添加到text变量,试试这个:

$.get(file, function(txt) {
    var text = '';
    var lines = txt.split("\n");
    $ul = $('<ul class="newsticker" />');
    $.each(lines, function(i, v) {
        v = $.trim(v);
        if (v !== '') {
            text += v + ' ';
        }
    });
    $ul.append('<li>' + text + '</li>');
    $ul.appendTo('div.wcustomhtml').newsTicker({
        row_height: 48,
        max_rows: 2,
        speed: 6000,
        direction: 'up',
        duration: 1000,
        autostart: 1,
        pauseOnHover: 1
    });
});