如何获取ajax的动态元素

时间:2013-09-07 08:11:43

标签: php javascript ajax

我知道我犯了很多错误,这就是我来这里的原因。 其实我有一些数据

根据数据,我有指示1,指示2,指示3和指示4,对于每个指示,存在用户的一些消息,并且如果我选择2,3或4,则消息将移动到该相应指示。而且我真的不知道如何做到这一点因为这些消息来自动态的:

 $i=1;
      while($row=mysqli_fetch_array($qry))
      {
     ?>

      <div class="solo"><div style=" width:100px;height:24px;float:left;padding:4px ;">


        <select style="width:60px;font-size:14px;" onchange="move(this.value);">

          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <!--<option value="60min">60min</option>
          <option value="other">other</option>-->
        </select>
      </div>

      <div style=" width:600px;height:24px;float:left;padding-top:8px;text-align:center;"> <?php echo $row['message'];?></div>
      <div  style=" width:100px;height:24px;float:left;padding:4px ;">
        <div style="width:100px; float:left;">
          <input style="float:left;" type="checkbox" value="<?php echo $row['id']; ?>" id="<?php echo $row['id']; ?>" name="foo[]"/><div style="padding:2px; float:left;"><a href="delete.php?q=<?php echo $row['id']; ?>" onclick="return del();">Kill</a></div>

        </div>

我正在使用这些消息ID

<script type="text/javascript">
function move(str)
{

var a=document.getElementsByClassName("mid")[0].value;
alert(a);
}
</script>

并在隐藏文本框中显示此消息ID:

<input type="hidden" name="msg" class="mid" value="<?php echo $row['id']; ?>">

我只是混淆了如何获取每条消息的特定消息ID,因为上面move()函数只给{id}} {/ p>一个id

所以我只想知道当所有输入框都有相同的类时,如何为每个元素执行此操作。

2 个答案:

答案 0 :(得分:0)

document.getElementsByClassName("mid")为您提供了一系列dom元素。您目前只占用该数组中的第一个元素。因此,遍历它并获取每个value属性

function move(str) {

  var a=document.getElementsByClassName("mid");
  for(var i=0;i<a.length;i++)
     alert(a[i].value);

}

更新

目前还不清楚你想要实现的目标。 如果您尝试使用索引str来警告dom元素的值,那么该函数可以像

一样简单
function move(str) {

  alert(document.getElementsByClassName("mid")[str].value);

}

如果没有,请在你的问题中提及你想要达到的目标。

答案 1 :(得分:0)

如果我理解正确,你想迭代getElementsByClassName的结果列表。为此,请查看:https://stackoverflow.com/a/15843940/1885950

在您的情况下,它将如下所示:

var mid_holders = document.getElementsByClassName("mid");
for(var i = 0; i < mid_holders.length; i++)
{
    alert(mid_holders.item(i).value);
}