jquery动态结构与Eq

时间:2010-04-20 09:13:45

标签: jquery

我想用动态jquery脚本进行单个提交,但它不起作用 我的代码有什么问题?

$(document).ready(function(){

   $("#foo").each( function( i )
   {

        $("button#foo").eq(i).click(function()
            {
               var a = this.val();
               alert(a);
            });
   });

});

<div id="tabs-1"><input type="type" value="one"><button id="foo"></button></div>

<div id="tabs-2"><input type="type" value="two"><button id="foo"></button></div>

<div id="tabs-3"><input type="type" value="tree"><button id="foo"></button></div>

感谢mapet

2 个答案:

答案 0 :(得分:2)

尝试

var a = this.value;

值是属性而不是方法

在jQuery中你可以使用

$(this).val()

您的整个代码应该是这样的

$(document).ready(function(){
   $("#foo").click(function(){
      var a = this.value; // or you can use $(this).val() 
      alert(a);
   });
});

<强> 修改

为所有按钮指定一个类名,并使用类选择器指定click事件。更改按钮ID。 ID在文档中应该是唯一的。

$("button.btnclass").click(function(){
    // to get the value of the input previous to the current button element
    var val = $(this).prev().val(); 
    alert ( val );
});

<强> Working Demo

第二次修改

$(function(){
  $("button.btnclass").click(function(){
    var currentElem = $(this);
    var val = currentElem.prev().val();
    var id = currentElem.attr("id");

    switch(id)
    {
      case "foo1"  : alert("ajax1");
                    break;
      case "foo2"  : alert("ajax2");
                  break;
      case "foo3"  : alert("ajax3");
                  break;
    }
  });
});​

答案 1 :(得分:1)

问题是你在重复ID。 ID必须是唯一的。你正在做的事情也没有多大意义。你想要实现什么目标?