我需要我的javascript代码来按代码块

时间:2015-06-24 15:01:29

标签: javascript php jquery html mysql

所以我有一个可以从onClick中检索id的Javscript,但它只选择带有id的第一个div。问题是我有多个唯一的id,它们是在php中生成的,然后保存在mysql数据库中。 id是唯一的但我需要我的onClick来检索div块中的id。

 function postFunction() {
var i;
var x;
  for (i = 0; i< x.length; i++)
    x = document.getElementsByClassName("post")[0].getAttribute("id");
    //alert(this.id);
    alert(x);

}

有没有办法为每个代码块选择id?

6 个答案:

答案 0 :(得分:0)

我看到你的问题中有jQuery标记。试试这个:

function postFunction() {
    var ids = []; //in case you need to have all ids;
    $('.post').each(function() {
        var id = $(this).attr('id');
        ids.push(id); //Store the id in the array
        alert(id);
    });
    console.log(ids); //Show all ids.
}

答案 1 :(得分:0)

使用Jquery可以让生活更轻松。

var h=[];
$("div").each(function(){
   h.push($(this).attr('id'));
});

警报(H); 您将获得所有div ID的数组。

答案 2 :(得分:0)

没有jQuery:

function postFunction() {
    var ids = Array.prototype.map.call(document.getElementsByClassName("post"), function(elem) {
        return elem.id
    });
    console.log(ids.join(", "));
}

答案 3 :(得分:0)

你需要获取元素,然后循环它们(目前你的循环代码没有做任何事情)

function postFunction() {

    var postEls = document.getElementsByClassName('post'),
        postElsCount = postEls.length;

    for (var i = 0; i < postElsCount; i++) {
        alert(postEls[i].id);
    }

}

Here's a fiddle

答案 4 :(得分:0)

jQuery将始终简化此类操作,但您也可以使用vanilla javascript实现相同的操作。这需要努力和由于浏览器支持javascript的时间差异很大,但值得一试。

function postFunction() {
    var ids = [];
    var x = document.getElementByClassName('post');

    for (var i = 0; i < x.length; i++) {
        var temp = x[i].getAttribute("id");
        ids.push(temp);
    }
    console.log(ids)
}

答案 5 :(得分:0)

getElementsByClassName()返回带有提供的类名的所有 HTML元素的列表。在循环中,您只会警告索引[0]返回的第一个元素。

尝试:

var x = document.getElementsByClassName("post");
for (var i = 0; i < x.length; i = i + 1) {
    alert(x[i].getAttribute("id"));
}
<!DOCTYPE html>
<html lang="en">
<div id="blah1" class="post"></div>
<div id="blah2" class="post"></div>
<div id="blah3" class="post"></div>
<div id="blah4" class="post"></div>
<div id="blah5" class="post"></div>
</html>