【问题标题】:How to retrieve value from a div dynamically?如何动态地从 div 中检索值?
【发布时间】:2014-06-11 03:17:38
【问题描述】:

伙计们,我有一个函数,它使用 ajax 调用根据 div 中的值动态检索数据。现在函数中的lastNoticeID 值没有得到更新,因为它不在任何循环中..因此它不断重复相同的数据..

代码:

function callMoreData() {
     var lastNoticeID = $('#hiddenLastNoticeID').val();
     $.ajax({
         type: "GET",
         url: "/api/values/getnotice?num=" + lastNoticeID,
         dataType: "json",
         crossDomain: true,
         async: true,
         cache: false,
         success: function (data) {
             $.each(data, function (index, value) {
                 BindNotice(value);
             });
         },
         error: function (x, e) {
             alert('problem while fetching records!');
         }
     });
 }



 function BindNotice(values) {
     $('#divNotices').append('...some code...' +
         '<input id="hiddenLastNoticeID" type="hidden" value="' + values.LastNoticeID +
         '" />' + '...some code...');
 }

正如您在上面的代码中看到的那样,我正在从上面的 div 中检索值,然后将其传递给 webApi url...一遍又一遍地使用相同的值,即var lastNoticeID 没有得到更新。如何让它更新每个滚动事件?

btw divNoticesBindNotice 函数具有相同的 html 代码。

【问题讨论】:

  • ID 必须是唯一的。您的#hiddenLastNoticeId 将被复制。 jQuery 将始终匹配第一个元素。
  • 你不能有多个元素具有相同的id。像您一样按id 选择只会返回1 个元素(第一个)。改用一门课,然后选择并学习最后一门课。或者更好的解决方案可能是将LastNoticeID 存储在一个变量中。

标签: javascript jquery


【解决方案1】:

改用类:

 function BindNotice(values) {
     $('#divNotices').append('...some code...' +
         '<input class="hiddenNotice" type="hidden" value="' + values.LastNoticeID +
         '" />' + '...some code...');
 }

然后:

var lastNoticeID = $('.hiddenNotice').last().val();

或者,您可以将LastNoticeID 存储在一个变量中:

var lastNoticeID = 0;

function BindNotice(values) {
     $('#divNotices').append('...some code...' +
         '<input class="hiddenNotice" type="hidden" value="' + values.LastNoticeID +
         '" />' + '...some code...');
     lastNoticeID = values.LastNoticeID;
}

【讨论】:

  • 我就是这么做的。谢谢你。 :)
【解决方案2】:

您似乎正在添加更多具有相同 ID 的元素。 ID 应该是单个实例,因此 Jquery 将只获取 DOM 中的第一个实例。 (这就是为什么$('#hiddenLastNoticeID').val();每次都一样)

【讨论】:

  • 不是真正的答案,因为它没有为 OP 提供解决方案。
  • 没关系,你显然已经涵盖了它。但是解决方案并不总是必须是代码,而且真的不应该是。很明显,NewbieProgrammer 不知道 ID 是单实例,而 Jquery 将它们视为单实例。现在有了这些知识,他/她自己学习会很好。
猜你喜欢
  • 2016-07-29
  • 1970-01-01
  • 2020-11-22
  • 2020-09-02
  • 2013-12-08
  • 2013-08-04
  • 2021-08-02
  • 1970-01-01
  • 2020-06-24
相关资源
最近更新 更多