如何通过javascript访问孩子?

时间:2018-05-30 10:15:10

标签: javascript

我在我的代码中使用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 
}

1 个答案:

答案 0 :(得分:0)

我假设您要选择点击的元素文字。您基本上不需要id,您可以通过event.target调用当前点击的元素。我创建了模拟json而不是xmlhttp响应....

&#13;
&#13;
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;
&#13;
&#13;