如何比较jQuery中的字符串
How to compare strings in jQuery
在这段代码中,我试图用jQuery比较两个字符串。div的当前内容和从(当前)静态页面加载的新内容。
但是它不起作用,当加载的内容与当前内容相同时,它仍然会加载新的内容…
当我查看内容变量时,它们确实是相等的(我使用了JS警报)。
$(document).ready(function () {
var refreshId = setInterval(function () {
$.get("ajaxGetEvents.aspx", function (data) {
if ($('#events').html() != data) {
$('#events').fadeOut('slow', function () {
$(this).load('ajaxGetEvents.aspx').fadeIn('slow');
});
} else {
alert("item is equal");
}
});
}, 5000);
});
也许比较.text()
比(可能生成的)html更好。
所以你有
$("#events").text() == $(data).text()
我怀疑您没有得到您期望的$('#events').html()
和data
的值。
可以使用firebug或开发人员工具在if语句中放置断点并检查值吗?
或者,你可以只是抛出几个警报,看看这些包含什么…例子:
alert($('#events').html());
alert(data);
if ($('#events').html() != data) {
也就是说,如果您不熟悉firebug或开发人员工具的使用,现在可能是开始使用它们的好时机。它们将在将来为您省去很多麻烦,并且在调试时它们比警报要好得多。
您确定空格是相同的吗?设data
为<span >test</span>
:
var data = "<span >test</span>";
// Temporarily place your data in a DOMElement to trigger parsing and re-serialization
alert(data===jQuery('<div>').append(test).html());
您将看到,上面的代码生成false
。原因是单词span
后面有一个空格。构建DOM树会删除这样的空白空间,并且调用html
没有办法恢复它们。
注意这个答案只是一个猜测。请张贴你的HTML,以获得更多有用的/有针对性的答案
如果您的ajax请求返回一个正常的文本字符串(不是html格式),我认为您应该使用text()
而不是html()
。
$(document).ready(function () {
var refreshId = setInterval(function () {
$.get("ajaxGetEvents.aspx", function (data) {
if ($('#events').text() != data) {
$('#events').fadeOut('slow', function () {
$(this).load('ajaxGetEvents.aspx').fadeIn('slow');
});
} else {
alert("item is equal");
}
});
}, 5000);
});
相关文章:
- jQuery字符串使用split()方法在空格后拆分字符串
- jquery字符串变量上的每个函数
- 如何用javascript替换Jquery字符串上的新参数
- jQuery 字符串转义 onclick='deleteRow(item“+count+”)' 如何引用项目和计数
- 使jQuery字符串加载gettext
- 通过AJAX发送jquery字符串,并使用PHP将其保存到html文件中
- JS/Jquery:字符串到单词的文本分割脚本使用字典和最长匹配
- jQuery |字符串替换不起作用
- Jquery 字符串替换,只替换数组的开头
- 以下jQuery字符串连接代码有什么问题
- 未捕获的语法错误:jQuery 字符串中意外的标记 ILLEGAL
- 内联 jquery 字符串 - 为某些单词添加粗体字体
- jquery字符串到数字回到字符串
- jQuery 字符串解析日志 a 404
- JQuery 字符串“随机发生器”聚类字符
- Jquery 字符串连接
- jQuery字符串比较
- 是否可以在一个jquery字符串中使用两种颜色的字体
- Jquery字符串与正则表达式匹配不起作用
- jQuery字符串替换匹配的正则表达式