Javascript Jquery使用attr()更改HTML属性返回对象

Javascript Jquery使用attr()更改HTML属性返回对象,javascript,jquery,attr,Javascript,Jquery,Attr,我读过多篇不同的文章和问题,但都无济于事。我有一个PHP页面,它将使用AJAX使用数据库中的值每隔X分钟进行一次检查来更新easypiechart。在本例中,我使用一个警报框将时间缩短为10秒,以显示所做的更改 我可以使用attr查看数据百分比,但是如果我尝试更改“数据百分比”属性的值,它将返回Object对象 在添加ajax响应作为替代之前,我试图暂时手动将值更改为90,直到我可以让这个函数工作为止 代码: 如果您将警报从ID切换到IDchange,您可以看到我的问题所在。谢谢大家,因为我知道

我读过多篇不同的文章和问题,但都无济于事。我有一个PHP页面,它将使用AJAX使用数据库中的值每隔X分钟进行一次检查来更新easypiechart。在本例中,我使用一个警报框将时间缩短为10秒,以显示所做的更改

我可以使用attr查看数据百分比,但是如果我尝试更改“数据百分比”属性的值,它将返回Object对象

在添加ajax响应作为替代之前,我试图暂时手动将值更改为90,直到我可以让这个函数工作为止

代码:

如果您将警报从ID切换到IDchange,您可以看到我的问题所在。谢谢大家,因为我知道我在这里的一个伟大的社区手中

更新,可以理解的是,警报功能不应用于调试。问题是,使用每10秒启动一次的AJAX响应来更新html属性,但不确定attr是否是解决方案。文档(例如)显示属性是使用attr更新的,这导致了我的混淆

简而言之,如何使用每10秒接收一次数据的AJAX更新包含easypiechart的div的html属性?

当使用两个参数调用.attr函数时,它将返回jQuery对象。换句话说,您将获得$test的值

它是这样做的,所以你可以做

$("#test").attr("foo", "bar").hide();
如果要查看更改后的值,请执行以下操作:

var IDchange = $("#test").attr("data-percent", 90).attr("data-percent");
当使用两个参数调用jQuery对象时,.attr函数返回该对象。换句话说,您将获得$test的值

它是这样做的,所以你可以做

$("#test").attr("foo", "bar").hide();
如果要查看更改后的值,请执行以下操作:

var IDchange = $("#test").attr("data-percent", 90).attr("data-percent");

在阅读了大量的文章后,我找到了答案,答案就是EasyPiechart本身。与EasyPiechart关联的JS将涉及数据属性。阅读EasyPiechart的文档,我找到了答案:

$('#test').data('easyPieChart').update(90); //to update the chart to 90%
我的问题是解决这个问题的方向,因为很多文章都在引用attr函数。在我的场景中,attr函数不会更新图表或道具,除非刷新图表以直观地看到更新。这些文章在与其他外部JS文件无关的元素上引用了此函数


感谢大家的贡献,今天我学到了一些重要的教训。我希望有人发现这个答案对任何想要使用AJAX和EasyPiechart进行动态百分比更新的人都有帮助

读了大量文章后,我找到了答案,答案是EasyPiechart本身。与EasyPiechart关联的JS将涉及数据属性。阅读EasyPiechart的文档,我找到了答案:

$('#test').data('easyPieChart').update(90); //to update the chart to 90%
我的问题是解决这个问题的方向,因为很多文章都在引用attr函数。在我的场景中,attr函数不会更新图表或道具,除非刷新图表以直观地看到更新。这些文章在与其他外部JS文件无关的元素上引用了此函数


感谢大家的贡献,今天我学到了一些重要的教训。我希望有人发现这个答案对任何想要使用AJAX和EasyPiechart进行动态百分比更新的人都有帮助

是的,所有jquery方法在用作setter时都是这样做的。这就是为什么不应该使用alert进行调试-它将所有内容强制为字符串,并阻止UI线程。在我看来,在jQuery中始终使用console.log或console.dir.data方法比直接愚弄属性更可取,尽管这与直接愚弄属性并不完全相同。当然,.data的缺点是,与仅仅更改/读取属性相比,它的开销要大得多。我更喜欢。attr@KevinB我认为数据仍然比访问DOM快得多。遗憾的是,jsperf.com已经不在了,所以我无法快速查找它。好吧,是的,所有jquery方法在用作setter时都是这样做的。这就是为什么不应该使用alert进行调试-它将所有内容强制为字符串,并阻止UI线程。在我看来,在jQuery中始终使用console.log或console.dir.data方法比直接愚弄属性更可取,尽管这与直接愚弄属性并不完全相同。当然,.data的缺点是,与仅仅更改/读取属性相比,它的开销要大得多。我更喜欢。attr@KevinB我认为数据仍然比访问DOM快得多。遗憾的是,jsperf.com已经不在了,所以我无法快速查找。@wick-12c也许你还不熟悉,理解这个答案可能会很有用,我认为:非常好的答案,很尖锐,我想给你一个投票,但我还没有资格这样做。我注意到人们使用attr不仅要检查属性,还要对属性进行更改,但我显然对函数有误解
n、 好的,我已经取得了进展,现在我在办公室,我已经询问了我工作中的一位开发人员。您不一定能在源代码中看到更改,因为我们正在更新与EasyPiechart相关的属性,所以我需要阅读EasyPiechart附带脚本的文档,以找到在@pointy进行上述更改后重新加载的方法。@wick-12c可能您不熟悉,也可能不熟悉理解这个答案很有用,我想:非常好的答案,很尖锐,我想给你一个投票,但我还没有资格这样做。我注意到人们不仅使用attr检查属性,还对属性进行更改,但我显然对该功能有误解。好的,我已经取得了进展,现在我在办公室,已经询问了我的一位开发人员。您不一定能看到源代码中的更改,因为我们正在更新与EasyPiechart相关的属性,所以我需要阅读包含的EasyPiechart脚本的文档,以找到在@pointy进行上述更改后重新加载它的方法。