我想要做的很简单。我有这个:
var loopTest = {
Test1: {
date : ['November 2011', 'a new date']
},
Test2: {
date : 'January 2012'
}
};
并使用for ... in like:
for(var key in loopTest) {
$('.content').append('- '+loopTest[key].date+'<br />');
}
我想将Test1.date
值显示为单独的元素。目前,他们只是一个字符串。我该怎么做?
这是小提琴:jsFiddle
答案 0 :(得分:2)
使用$.isArray()
来测试loopTest[key].date
是否为数组。如果是,请使用一些<br>
和连字符连接内部日期。否则,按原样附加字符串。
for(var key in loopTest) {
if($.isArray(loopTest[key].date)){
var content = '- ' + loopTest[key].date.join('<br />- ') + '<br />';
} else {
var content = '- ' + loopTest[key].date + '<br />';
}
$('.content').append(content);
}
只需使用其中一种许多方式即可。
答案 1 :(得分:1)
检查日期是否为数组并循环显示:
public class MyFragment1 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_my_fragment1, container, false);
Button bot = (Button)rootView.findViewById(R.id.button3);
bot.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "button clicked", Toast.LENGTH_LONG);
}
});
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
答案 2 :(得分:1)
保持简短和甜蜜
for (var key in loopTest) {
[].concat(loopTest[key].date).forEach(function(date) {
$('.content').append('- ' + date + '<br />');
});
}
答案 3 :(得分:1)
for(var key in loopTest) {
var date = loopTest[key].date;
date = date.join ? date.join("<br>- ") : date
$('.content').append('- ' + date + '<br />');
}
答案 4 :(得分:0)
另一种解决方案:)
var store = [];
for (var key in loopTest) {
if (!loopTest.hasOwnProperty(key)) continue;
var date = loopTest[key]["date"];
if (date.constructor === Array) {
for (var j in date) {
if (!date.hasOwnProperty(j)) continue;
store.push('<p>-', date[j], '</p>');
}
} else {
store.push('<p>-', date, '</p>');
}
}
$('.content').append(store.join(''));