我在jQuery中动态添加了DOM对象时遇到了问题。首先我用这个:
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插入usersList。这很好用,但现在我想从这个div中获取val,当我点击它来进一步处理它。我写了这段代码:
$usersList.on('click','#listelem', function(){
alert("clicked");
});
当我点击div时,我得到了适当的警报,但现在我不知道如何从这个元素内部获取数据。
答案 0 :(得分:0)
试试这个
$(document).on('click','#listelem', function(event) {
alert($(event.target).text());
});
答案 1 :(得分:0)
我不知道正确的工程,但我在制定一些要求时处理了类似的问题。基本上我理解你想要找出事件的目标并从中拖出一个值?如果是这样,你可以这样做:
jQuery(document).on('click', '#listelem', function(event){
var x = event.target.val();// event.target.value; depending on your situation and availability of the method.
});
希望这会有所帮助。
答案 2 :(得分:0)
谢谢你的帮助。对我来说,正确的选择就是致电
var mem = event.target.innerText;
答案 3 :(得分:0)
您可以使用常规javascript来做到这一点,不需要Jquery。
document.addEventListener("click", function(e) {
if(e.target) {
console.log("item clicked ", e.target.textContent);
}
});
这应该做得到当前目标值的工作。