【发布时间】:2018-07-16 21:45:58
【问题描述】:
我正在为我的 javascript 编写 jasmine 测试,在每次测试之前需要一个带有两个或三个选项的 select 标记。所以,我把这段代码放在了我的 beforeEach 函数中
$('<select class="tags" multiple name="tagList" id="tagListID" title="Tag List" size=3 class="form-control select"><option onmousedown="multiSelect(event, this)" value="java" id="java">'+ tag1 +'</option><option onmousedown="multiSelect(event, this)" value="php" id="php">'+ tag2 +'</option> </select>').appendTo('body');
有效。但是,当我使用 appendTo('body') 函数将单行分成多行时,我的测试没有通过。
$('<select class="tags" multiple name="tagList" id="tagListID" title="TagList">').appendTo('body');
$('<option onmousedown="multiSelect(event, this)" value="java" id="java">'+ tag1 +'</option>').appendTo('body');
$('<option onmousedown="multiSelect(event, this)" value="php" id="php">'+ tag2 +'</option>').appendTo('body');
$('</select>').appendTo('body');
我不知道如何将这一行变成多行。它是否不起作用,因为开始和结束标签应该在同一行(我不这么认为)。
谢谢
【问题讨论】:
-
jQuery 对象只能包装完整的 DOM 元素,不能包装 HTML 片段。
$('</select>')毫无意义。 -
@SLaks 等等,你是对的,所以开头的 $ 并没有真正附加到正文或使用 jQuery,以前从未使用过。
标签: javascript html unit-testing jasmine