这是我在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中显示这两行,并将它们向上滚动为一行两行。
答案 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)
假设您要在单个li
,trim
行显示文字,并检查它是否为空,请将其添加到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
});
});