Я использую jquery в своем коде, и у меня есть список, и когда я вызываю свою функцию для доступа к текстовому элементу в моем коде, возвращается 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.info(place) //undefiend
}
Можно, пожалуйста, немного HTML? Не очевидно, какой элемент из вашего кода будет иметь id = "1".
Ни один из элементов form, таких как ваш a, не имеет свойства .value. Используйте .innerText или .textContent, например document.getElementById('1').innerText



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я предполагаю, что вы хотите выбрать текст элемента с щелчком. В принципе, 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.info(event.target.textContent);
}<div id = "dropdownplace">
</div>
В этом коде нет jQuery ...?