当里面有链接时,我无法获得li的数据值,你能帮我解决吗?
li示例:
<li data-val="Lima 2">Lima [T:19ºC H:82%]<a href="#" onclick="if(confirm('Remover?')){parentNode.parentNode.removeChild(parentNode)}"><span style="float:right;"><b>[X]</b></span></a>
</li>
的Javascript
$("#cup").on("click", function () {
$('.clista').each(function () {
var cidades = [];
var cidade = '';
$(this).find('li').each(function () {
var current = $(this);
if (current.children().size() > 0) {
return true;
}
cidade += $(this).attr('data-val');
alert(cidade);
});
cidades.push(cidade);
});
});
您可以查看脚本:http://jsfiddle.net/fabiobraglin/rcheaowx/8/
很多!
答案 0 :(得分:0)
由于你有一个if块,如果li有子节点,则返回true。我不知道你想通过这样做完成什么。但是,如果检查变为true,则函数通过返回true退出。如果删除该return语句或删除complete if块,则更新功能将正常工作。试试这个。希望它有所帮助。
答案 1 :(得分:0)
试试这个:
$("#cup").on("click", function () {
var cidades = new Array();
$('.clista li').each(function () {
cidades.push($(this).data('val'));
});
alert(cidades);
});
答案 2 :(得分:0)
您应该在alert
功能之外写下each
。你不应该检查孩子,这就是你为什么要这样做的结果;得到你想要的结果。
$('.clista').each(function () {
var cidades = [];
var cidade = '';
$(this).find('li').each(function () {
cidade += $(this).attr('data-val');
});
alert(cidade);
cidades.push(cidade);
});
答案 3 :(得分:0)
获取所有data-val只是删除下面的代码部分
if (current.children().size() > 0) {
return true;
}