0

首先,我知道我的问题似乎已经被问了很多次,但我面临一个奇怪的问题。

情况如下:

我在这个标签中有一个整数(动态加载):

<i id="my_id">{{here's my integer}}</i>

我想要做的是检索我的标签内的整数,但这个整数首先设置为 0(当页面没有完全加载时),然后 2 或 3 秒后,这个整数设置为它的真实值。

所以我尝试了这样的事情:

var test = 0;
$('#my_id').change(function(){
  test = $('#my_id').html();
});

console.log(test);

这总是返回 0。我尝试了很多方法来获取标签的当前值,但我找不到成功的方法。你能帮我得到这个整数吗?

亲切地,罗布。

4

1 回答 1

3

change事件仅由input元素触发。您可以尝试像这样轮询值:

var intervalId = setInterval(function() {
    var value = parseInt($('#my_id').text(), 10);

    if(value > 0) {
        clearInterval(intervalId);
        //... do stuff
    }

}, 250); //poll every 250ms

另一种方法是在更改值时触发自定义事件:

//Somewhere in your code where you set the value in the i tag:
$('#my_id').text(value);
$('#my_id').trigger("valueChanged");

//Elsewhere in your code
$('#my_id').on("valueChanged", function() {
    var value = parseInt($(this).text(), 10);
    if(value > 0) {
        //... do stuff
    }
});
于 2013-08-05T16:18:53.967 回答