找不到用php

时间:2017-02-08 17:28:06

标签: javascript php jquery

使用jquery我正在向div元素添加新元素我也设置了新添加元素的id但仍然无法找到新添加的元素。

$.ajax({  //ajax call
    type: "POST",       
    url: "ajax/ajax.php", 
    data: { users: values }
}).done(function( msg ) {
    //do something with msg which is response
    //this line will put the response to item with id `#txtHint`.
    $("#divselect").html(msg)
    //alert(msg);
});
});

新元素已成功添加,但点击按钮时,javascript无法找到新的元素ID。有没有办法只重新加载JavaScript或我应该怎么做?

     $("#validator").click(function (){//validator is my submit button id

     var value = document.getElementById('select_division'); //select_division is id of my new added element
     alert(value);
 }

然后是参考错误。对此。

2 个答案:

答案 0 :(得分:2)

jQuery在运行时只知道页面中的元素,因此添加到DOM的新元素无法被jQuery识别。要解决这个问题,请使用event delegation,将新添加的项目中的事件冒泡到DOM中的一个点,当jQuery在页面加载时运行时。许多人使用document作为捕获起泡事件的地方,但没有必要一直向上移动DOM树。理想情况下you should delegate to the nearest parent existing at the time of page load.

此外,ID's Must Be Unique,特别是因为当您尝试与这些元素进行交互时,它会在JavaScript和CSS中导致问题。

更改你的选择器(从jQuery转换为vanilla JS,因为你已经在使用jQuery,因此你没有必要使用jQuery)并使用on()来执行事件委派:

$(document).on('click', '.validator', (function (){//validator is my submit button id
    var value = document.getElementsByClassName('select_division'); //select_division is id of my new added element
    alert(value);
})

此处的部分问题是您需要与select_division相关的特定validator。为了得到它你可以执行一些DOM遍历。没有看到你的标记,我无法告诉你如何进行遍历。

答案 1 :(得分:-1)

问题解决了我写错了。

无法完成
$("#elementid").click(function (){//v

它只适用于

var value = document.getElementById('elementid').value;

感谢您的帮助