Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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';s.hide()不';t集样式=”t;显示:无&引用;跨浏览器一致_Javascript_Jquery_Dom - Fatal编程技术网

Javascript jQuery';s.hide()不';t集样式=”t;显示:无&引用;跨浏览器一致

Javascript jQuery';s.hide()不';t集样式=”t;显示:无&引用;跨浏览器一致,javascript,jquery,dom,Javascript,Jquery,Dom,背景: 我正在使用quonit以以下方式验证DOM元素的创建(到目前为止工作正常): $actual=Mylibrary.createSomething(); $expected=$('从QUnit透视图执行以下检查,以查看元素是否隐藏: equal(element.css('display'), 'none', 'element is not hidden'); 这样就无需比较字符串差异。如果不使用jQuery,请执行以下操作: equal(element.style.display, 'n

背景:
我正在使用
quonit
以以下方式验证
DOM
元素的创建(到目前为止工作正常):

$actual=Mylibrary.createSomething();

$expected=$('从QUnit透视图执行以下检查,以查看元素是否隐藏:

equal(element.css('display'), 'none', 'element is not hidden');
这样就无需比较字符串差异。如果不使用jQuery,请执行以下操作:

equal(element.style.display, 'none', 'element is not hidden');
如果您想创建一些实用程序扩展来模块化单元/交互测试,那么isEqualNode不是您的最佳方法。最好为自己提供以下方法:

checkClass(element, cssClass)
checkAttribute(element, attr, value)
checkAttributeExists(element, attr)
etc...

好了,jQuery只使用了
el.style.display
——所以你需要责怪浏览器生成html字符串。你如何定义两个本质上不相等的节点之间的相等性?它们并不是都引用同一个对象,并且它们有不同的父节点、子节点和兄弟节点。字符串相等性与
@zzzzBov相同:
isEqualNode
比较节点及其子节点(而不是其父节点或同级节点)我不在乎属性在每个节点上的顺序是否相同,只要它们具有相同的值,这正是我验证代码所需要的,因为我通过编程生成一些元素,手动创建一些元素,并使用
isEqualNode
来比较它们,如果浏览器碰巧以不同的顺序插入属性,则不会“不要破坏我的测试。我唯一的问题是,
显示:无;
:(但是
也描述了同样的事情,所以听起来你需要添加一些额外的逻辑来比较属性。@zzzzBov:的确,我认为最终我需要编写自己的函数:(我认为创建我自己的函数是必要的(上面强调的另一个问题是,
.isEqualNode
会认为
class=“foo-bar”
class=“bar-foo”
(这是从
DOM
的角度来看的,虽然功能上是相同的,但我认为只要一个类的规则不覆盖另一个类的规则)。@user359650是的,这就是为什么checkClass实用程序的实现不应该依赖于读取所有类,而是一次只检查一个类的原因。
checkClass(element, cssClass)
checkAttribute(element, attr, value)
checkAttributeExists(element, attr)
etc...