Javascript jQuery:包含伪选择器,有时测试innerHTML,有时测试innerText。行为改变了吗?
我们的开发和测试环境似乎以一种神秘的方式出现了分歧,我需要追踪到底发生了什么。根据Chrome的开发工具,这两个环境都使用jquery-1.11.0.js。分歧的症状是,在Dev中,使用伪选择器Javascript jQuery:包含伪选择器,有时测试innerHTML,有时测试innerText。行为改变了吗?,javascript,jquery,html,system-administration,Javascript,Jquery,Html,System Administration,我们的开发和测试环境似乎以一种神秘的方式出现了分歧,我需要追踪到底发生了什么。根据Chrome的开发工具,这两个环境都使用jquery-1.11.0.js。分歧的症状是,在Dev中,使用伪选择器:contains的jQuery代码在innerHTML上匹配,但在测试中,它在innerText上匹配。innerHTML(来自我们的供应商,我们无法编辑)如下所示(注意跨度后的回车): 为了隐藏此文本,在测试中,我们只需查找innerText: $('*:contains("* Required"):
:contains
的jQuery代码在innerHTML上匹配,但在测试中,它在innerText上匹配。innerHTML(来自我们的供应商,我们无法编辑)如下所示(注意跨度后的回车):
为了隐藏此文本,在测试中,我们只需查找innerText:
$('*:contains("* Required"):last').html("");
然而,在Dev中,我们必须注意innerHTML,使用以下代码:
$('*:contains("Required")').has("span.Required").filter(":last").html("");
因此,解决方法是在脚本中包含这两行代码,但重要的问题是,jQuery在这两种环境中的行为如何不同?我想知道:
- jQuery是否在某个时候更改了使用
进行选择的行为李>:contains
- 我们的环境中有什么东西可能会影响这一点吗李>
$('*:contains("* Required"):last').html("");
$('*:contains("Required")').has("span.Required").filter(":last").html("");