按ID选择动态创建的div

时间:2012-07-12 11:24:09

标签: javascript jquery html

我似乎无法弄清楚如何执行此操作,但我创建的按钮在单击时会向包含文本框的页面添加新div。这工作正常,但我想要做的是如果用户点击div我希望在警告框中弹出divs id。代码如下。

HTML

     <table>
     <td>
     <ul id ="firstColumn">
                    <div id="identifier">
                    </div>
                </ul>
            </td>
            <td>
                <ul id ="secondColumn" width="5%">
                    <li><input type="button" class="formCreationButton" id="textAdd"       value="Single line text" /></li>
     </td>
     <ul>
     </table>

添加div和文本框的jQuery如下工作正常。

   $('#textAdd').click(function() {
                var newdiv = document.createElement('div');
                newdiv.innerHTML = "Textbox " + textBoxCounter + " <br><div id='container "+counter+"' class='container'><li><input type='text' value='TEXT' name='textBox " + textBoxCounter +"onclick='display(this)'></li></div></br>";

                document.getElementById("identifier").appendChild(newdiv);
                textBoxCounter++
                counter++;
            });

所以每当我点击按钮时,都会创建一个新的div和文本框。我现在要做的是当用户点击div时,会弹出一个警告框,其中包含所点击的div的id。显然,这不是我想要做的唯一事情,但它是我坚持的部分,下面是我的尝试。

     $(".container > div").click(function(){
                var divID = this.id;
                alert(divID);
                // do other stuff that needs to be done
            });

当我点击div时,唯一发生的事情是弹出一个警告“内容”。我需要它包含类似“container1”或“container2”等的东西。

无论如何,提前感谢您提供的任何帮助,我们非常感谢。对jQuery来说很陌生,所以对其他人看起来很简单的事情有困难。

2 个答案:

答案 0 :(得分:3)

.on API可以解决问题:http://api.jquery.com/on/ 演示 http://jsfiddle.net/eqDKP/1/

另请注意,html表格缺少tr代码。

希望这有助于:)

<强>码

   $(".container > div").on('click',function(){
                var divID = this.id;
                alert(divID);
                // do other stuff that needs to be done
            });

答案 1 :(得分:2)

您应该为新创建的元素委派click事件:

  

.on(events [,selector] [,data],handler(eventObject))

$(".container").on('click', "div", function(){
     var divID = this.id;
     alert(divID);
});