javascript - 你如何检查 jquery .html() 变量和 ruby​​ on rails 生成的 html 之间的相等性?

标签 javascript jquery html ruby-on-rails ajax

目前我正在尝试比较两个变量,newhtmloldhtml . 我得到旧的 html 使用:

var oldhtml = $('#pop').html();

我使用以下方法获取新的 html:

var newhtml = ("<%= escape_javascript render(:file => 'shared/_content') %>");

然后我尝试使用以下方法比较它们:

if(newhtml == oldhtml)
{
  //is never called
  $('#pop').hide();
}
else
{
  //is always called
  $('#pop').html(newhtml);
}

但它不起作用。在这种情况下 oldhtml变量实际上只是前面的 newhtml多变的。所以,如果你在主页上点击相同的内容newhtml实际上应该只是 ruby​​ on rails 生成的 oldhtml 版本(<div id="pop"> 中的 html)。我已经尝试附加它们以查看差异所在,但它对我来说看起来完全一样。我希望有人能把我推向正确的方向?谢谢!

最佳答案

我会尝试将 newhtml 放在一个隐藏的 DOM 元素中,然后从 jquery .html()

获取该内容
$('#HiddenDOM').html(newhtml);

if ($('#HiddenDOM').html() === $('#pop').html()) { ... }

未经测试但可能会消除 html 渲染问题。

此外,对 javascript 使用三重相等比较:=== 而不是 == 。有关解释,请参阅 youtube 上关于 Javascript The Good Parts 的 Cockford。

总的来说,我会重新考虑您的设计,因为比较可能无法真正实现,并且会使您的架构暴露于各种浏览器之谜。有时,您首先必须找出什么不起作用才能找到可行的解决方案。

关于javascript - 你如何检查 jquery .html() 变量和 ruby​​ on rails 生成的 html 之间的相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491195/

相关文章:

javascript - 如何使用通过 jQuery 获得的变量?

html - 仅文本而不是父 span/div/body 的 CSS 背景?

javascript - 尝试使用 JS 将一个 div 集中在另一个动态的 div 中

php - Javascript 不接受我的函数参数?

javascript - 可观察的添加延迟 - Angular 2

javascript - 如何忽略鼠标事件直到函数完成

jquery - 滑动 Bootstrap 元素内联

html - CSS:使元素覆盖所有其他元素

javascript - 在 javascript 中,我使用 EventListener 并得到 TypeError xyz = null

Javascript onclick div 元素加载类似于链接的页面