如何解决从ajax成功更改多个HTML元素
我在成功函数上有一个ajax,我在满足某些条件的情况下编写了一些css颜色更改任务。我正在使用“ document.getElementById” 更改html元素的颜色。我的问题是我应该在不止一个数据对象中更改html元素,但在这种情况下,它始终是最后一个对象。
我的成功功能:
success: function (data) {
$.each(data,function (index,value) {
if (userId == value.ApplicationUserId && postId == value.PostId && value.IsLiked == 1) {
document.getElementById(likeId).style.color = "red";
}
if (userId == value.ApplicationUserId && postId == value.PostId && value.IsLiked == 2) {
document.getElementById(dislikeId).style.color = "red";
}
if (userId == value.ApplicationUserId && postId == value.PostId && value.IsHelpfull == 1) {
document.getElementById(helpfulId).style.color = "red";
}
});
}
我的元素ID都是唯一的并且是动态生成的。此外,我还在documet.getElementById内部传递了正确的ID。如何更改所有满足条件的元素?
解决方法
鉴于您在评论中的澄清,似乎您想要这样的东西。
首先,由于所有条件的前两个条件相同,因此您可以检查一次并在其中嵌套其他检查。
if (userId == value.ApplicationUserId && postId == value.PostId) {
...
}
然后,您要检查两种情况:
- 喜欢或不喜欢它。由于这些是互斥的,因此可以将它们与
else
结合使用。
if (value.IsLiked == 1) {
document.getElementById(likeId).style.color = "green"; // Liked color
} else if (value.IsLiked == 2) {
document.getElementById(dislikeId).style.color = "red"; // Disliked color
}
- 如果有帮助
if (value.IsHelpfull == 1) {
document.getElementById(helpfulId).style.color = "blue"; // Helpful color
}
success: function (data) {
$.each(data,function (index,value) {
if (userId == value.ApplicationUserId && postId == value.PostId) {
if (value.IsLiked == 1) {
document.getElementById(likeId).style.color = "green";
} else if (value.IsLiked == 2) {
document.getElementById(dislikeId).style.color = "red";
}
if (value.IsHelpfull == 1) {
document.getElementById(helpfulId).style.color = "blue";
}
}
});
}
ps::检查整个helpful
的拼写是否一致和正确。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。