如何遍历UL中的LI项,获取特定属性,并通过$ .ajax数据传递它们

时间:2012-06-01 10:37:54

标签: javascript jquery

这是我的HTML代码:

<ul id="gallery">
    <li id="attachment-32" class="featured"><a href="..." title=""><img src="..." alt="" /></a></li>
    <li id="attachment-34"><a href="..." title=""><img src="..." alt="" /></a></li>
    <li id="attachment-38"><a href="..." title=""><img src="..." alt="" /></a></li>
    <li id="attachment-64"><a href="..." title=""><img src="..." alt="" /></a></li>
    <li id="attachment-75"><a href="..." title=""><img src="..." alt="" /></a></li>
    <li></li>
</ul>

以下是我的样本ajax请求:

$.ajax({
    url: '/ajax/upload.php',
        type: 'POST',
    data: { ... },
        success: function(data){
        }
});

这是我想要实现的目标。

  1. 如果ID attr在那里,如何获取图库中每个LI的ID属性中的附件编号,并通过ajax数据以这种方式传递它们:{ attached : '32,34,38,64,75' }如果有更好的方法这样做让我知道我想传递包含附件的列表项进行处理。 我想避免使用空的LI项,不包括id attr。

  2. 如何获取具有特征类的列表项LI {featured_img:..}并传递附件ID号,如果有特色LI存在,如果没有列出项目的特色,则将features_img传递给0.所以我知道如何在请求中通过php处理它。

  3. 感谢任何帮助。

    谢谢。

2 个答案:

答案 0 :(得分:4)

有一个.map

var ids = $("#gallery li").map(function () {
    return this.id.split("-")[1];
}).get().join(",");

...

$.ajax({
    url: '/ajax/upload.php',
    type: 'POST',
    data: { ids: ids },
    success: function(data) {

    }
});

Demo.

答案 1 :(得分:0)

试试这个,可以帮到你。

var val = new Array();
$('#gallery li').each(function(){
    val.push($(this).attr('id'));
});
document.write(val);

实施的例子。

$.ajax({
    url: '/ajax/upload.php',
        type: 'POST',
    data: { attached : val },
        success: function(data){
        }
});

希望这对你有所帮助。