我在我的代码中使用jquery,我有一个列表,当我调用我的函数访问我的代码中的text元素时,undefined又回来了。
这是我的代码
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var place_obj = JSON.parse(this.responseText);
for (var k = 0; k < Object.keys(place_obj).length; k++) {
if (k % 2 == 0) {
document.getElementById('dropdownplace').innerHTML +=
'<a class="dropdown-item font_size_x1" style="background-color:#d9d9d947" ' +
'href="#" onclick="pFilter()" id="' + k + '"><span class="">- </span>' + place_obj[k].Type + '</a>';
} else {
document.getElementById('dropdownplace').innerHTML +=
'<a class="dropdown-item font_size_x1" ' +
'href="#" onclick="pFilter()" id="' + k + '"><span>- </span>' + place_obj[k].Type + '</a>';
}
}
}
};
function pFilter() {
var place = document.getElementById('1').value;
console.log(place) //undefiend
}
答案 0 :(得分:0)
我假设您要选择点击的元素文字。您基本上不需要id
,您可以通过event.target
调用当前点击的元素。我创建了模拟json而不是xmlhttp响应....
var place_obj = [{Type: 'a'},{Type: 'b'}];
for (var k = 0; k < Object.keys(place_obj).length; k++) {
if (k % 2 == 0) {
document.getElementById('dropdownplace').innerHTML +=
'<a class="dropdown-item font_size_x1" style="background-color:#d9d9d947" ' +
'href="#" onclick="pFilter()"><span class="">- </span>' + place_obj[k].Type + '</a>';
} else {
document.getElementById('dropdownplace').innerHTML +=
'<a class="dropdown-item font_size_x1" ' +
'href="#" onclick="pFilter()"><span>- </span>' + place_obj[k].Type + '</a>';
}
}
function pFilter() {
console.log(event.target.textContent);
}
&#13;
<div id="dropdownplace">
</div>
&#13;