Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:包含伪选择器,有时测试innerHTML,有时测试innerText。行为改变了吗?_Javascript_Jquery_Html_System Administration - Fatal编程技术网

Javascript jQuery:包含伪选择器,有时测试innerHTML,有时测试innerText。行为改变了吗?

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"):

我们的开发和测试环境似乎以一种神秘的方式出现了分歧,我需要追踪到底发生了什么。根据Chrome的开发工具,这两个环境都使用jquery-1.11.0.js。分歧的症状是,在Dev中,使用伪选择器
:contains
的jQuery代码在innerHTML上匹配,但在测试中,它在innerText上匹配。innerHTML(来自我们的供应商,我们无法编辑)如下所示(注意跨度后的回车):

为了隐藏此文本,在测试中,我们只需查找innerText:

$('*:contains("* Required"):last').html("");
然而,在Dev中,我们必须注意innerHTML,使用以下代码:

$('*:contains("Required")').has("span.Required").filter(":last").html("");
因此,解决方法是在脚本中包含这两行代码,但重要的问题是,jQuery在这两种环境中的行为如何不同?我想知道:

  • jQuery是否在某个时候更改了使用
    :contains
    进行选择的行为
  • 我们的环境中有什么东西可能会影响这一点吗
如果您在这两种情况下都使用相同版本的jquery,那么了解jquery最近是否更改了此功能就没有那么重要了,不是吗?也。。。不,它没有改变。至少一段时间内不会。@KevinB:谢谢你的链接。如果最近发生了变化,它会影响我处理这个问题的方式。您是否确认(通过view source和inspect元素)这两种情况具有完全相同的html?是的,html完全相同,但这两种环境之间似乎存在某种差异。从Prod刷新Dev和Test使它们以相同的方式工作。谢谢你的帮助。
$('*:contains("* Required"):last').html("");
$('*:contains("Required")').has("span.Required").filter(":last").html("");