从Java Server加载JSON ajax后,无法获取h1标记的innerHTML

时间:2015-02-01 16:17:40

标签: javascript ajax json rest

$.ajax({
  type: "GET",
  url: "/users",
  dataType: "json",
  success: function(people) {
    people.forEach(function(person) {
      usersDiv.innerHTML += '<div>'+
      '<h1>' + person.username + '</h1>'+
      '<button class="send-message">Write message</button>'+
      '</div>'; },
  error: function(err) {
    alert("blad + error" );
  },
  contentType: "application/json"
    }).done(function() {
      $(".send-message").click(function() {
        var that = $(this);
        var parentOfThat = that.parent();
        var nameOfTheUser = String(parentOfThat.find("h1").textContent); 
      });
    )

此代码完美无缺。它使用h1 paragraf以及json对象中的每个人名填充userDiv。 当我想要检索h1 innerHTML的名称时,它会产生未定义的。我几乎尝试了所有方法,从text()到html()等等。

3 个答案:

答案 0 :(得分:0)

你能尝试使用find(“h1”)。eq(0).text()或find(“h1:first”)。text()来确保只检索一个元素吗?

答案 1 :(得分:0)

更改为

contentType: "application/json"
    }).done(function() {
      $(".send-message").click(function() {
         var nameOfUser = $(this).prev('h1').text();
         //alert(nameOfUser);
      });
    )

这是显示how this change works

的JSFiddle

答案 2 :(得分:0)

确定。问题解决了!我实际上有一个div更多!而不是

String(parentOfThat.find("h1").textContent)

我不得不将其更改为:

String(parentOfThat.parent().find("h1").textContent)