如何将数组拆分为无序列表包括属性和大写文本

时间:2018-01-13 16:10:32

标签: javascript jquery html arrays string

我尝试使用现有的字符串创建一个过滤器菜单。我有一个简单的问题,我似乎无法修复。以下是简化版本:

HTML:

var $ = jQuery;
var data  = 'phoenix1,phoenix2,phoenix3,phoenix4,phoenix5';
data  = data .split(',');
data .forEach(function (i) { 
    $('.filter-nav').append($('<li class="filter-item"><a href="#">'+i+'').attr('data-uk-filter',i));
});

JS Idea:

<ul class="filter-nav">
    <li class="filter-item" data-filter="phoenix1"><a href="#"></a><li>
    <li class="filter-item" data-filter="phoenix2"><a href="#"></a><li>
    <li class="filter-item" data-filter="phoenix3"><a href="#"></a><li>
    <li class="filter-item" data-filter="phoenix4"><a href="#"></a><li>
    <li class="filter-item" data-filter="phoenix5"><a href="#"></a><li>
</ul> 

不幸的是,代码没有按预期工作(没有文本'+ i +'):

结果:

<ul class="filter-nav">
    <li class="filter-item" data-filter="phoenix1"><a href="#">Phoenix1</a><li>
    <li class="filter-item" data-filter="phoenix2"><a href="#">Phoenix2</a><li>
    <li class="filter-item" data-filter="phoenix3"><a href="#">Phoenix3</a><li>
    <li class="filter-item" data-filter="phoenix4"><a href="#">Phoenix4</a><li>
    <li class="filter-item" data-filter="phoenix5"><a href="#">Phoenix5</a><li>
</ul> 

我遇到的基本问题是将数组拆分为文本和属性“data-filter”或类似的东西。 jQuery是可以接受的,我已经尝试了一些正则表达式和切片的基本方法,但似乎没有什么能回报我正在寻找的东西。

最终我想要的输出将是数组的无序列表包括:data-filter和大写文本“i”,如下所示:

EUR <- xts(EURUSD_5mins[,-1], order.by=as.Date(EURUSD_5mins$Date, format = '%Y/%m/%d %H:%M:%S'))

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:0)

问题是,您错过了结束<?php echo $_GET[rowid];//it will print value passed from form1.php ?> </li>

应该是:

</a>

这是一个片段:

&#13;
&#13;
$('.filter-nav').append($( '<li class="filter-item"><a href="#">'+i+'</a></li>' ).attr('data-uk-filter',i));
&#13;
$(document).ready(function(){
	var data  = 'phoenix1,phoenix2,phoenix3,phoenix4,phoenix5';
	data  = data .split(',');
	data .forEach(function (i) { 
		$('.filter-nav').append($( '<li class="filter-item"><a href="#">'+i+'</a></li>' ).attr('data-uk-filter',i));
	});
});
&#13;
&#13;
&#13;