Javascript 动态添加对象的jQuery Eventhandler
我在jQuery中动态添加DOM对象时遇到问题。首先,我用这个:Javascript 动态添加对象的jQuery Eventhandler,javascript,jquery,event-handling,Javascript,Jquery,Event Handling,我在jQuery中动态添加DOM对象时遇到问题。首先,我用这个: var $input = $('#search-input'); var $usersList = $('#ulist'); $input.on('input', function () { $.ajax({ type: 'get', url: '/userlist', data: {query: $input.val()},
var $input = $('#search-input');
var $usersList = $('#ulist');
$input.on('input', function () {
$.ajax({
type: 'get',
url: '/userlist',
data: {query: $input.val()},
success: function (response) {
var json = JSON.parse(response);
$usersList.empty();
$.each(json, function (index, val) {
$usersList.append("<div id=\"listelem\"><a href=\"#\">" + val + "</a></div>");
});
}
});
});
<div id="ulist"></div>
<input id="search-input" type="text">
当我单击div时,我得到了正确的警报,但现在我不知道如何从该元素内部获取数据。试试这个
$(document).on('click','#listelem', function(event) {
alert($(event.target).text());
});
我不知道正确的工程设计,但我在开发一些需求时处理过类似的问题。基本上正如我所理解的,你想找出事件的目标并从那里拖出一个值?如果是这样,您可以这样做:
jQuery(document).on('click', '#listelem', function(event){
var x = event.target.val();// event.target.value; depending on your situation and availability of the method.
});
希望这有帮助 谢谢你的帮助。对我来说,正确的选择是打电话
var mem=event.target.innerText 您可以使用常规javascript实现这一点,而不需要Jquery
document.addEventListener("click", function(e) {
if(e.target) {
console.log("item clicked ", e.target.textContent);
}
});
这将完成获取当前目标值的任务 抱歉,但我在你的评论中看不到对我有帮助的东西,当我单击第一个div时,我想从中获取值“1”,如果我单击下一个div,我希望它能通过我的“2”值,希望现在清楚谢谢你的回复,我测试了它,但我无法到达目标。val()好像是我的比赛。目标不能那样通过我。
document.addEventListener("click", function(e) {
if(e.target) {
console.log("item clicked ", e.target.textContent);
}
});