我有两个生成DOM元素的函数。他们都试图创建相同的容器元素。 (我不想强制执行这些功能的特定运行顺序,或者将它们紧密耦合到创建此元素的副作用)。我一直在尝试发现一个方法,如果它存在,将获得一个元素,或者创建一个单一的实例,如果没有,并返回一个包含该元素或所有匹配的元素(如果它们已经存在)的jQuery对象。
我没有发现这在搜索jQuery文档中存在,但是我以为我会在这里询问是否有人遇到类似的问题,并提出了建议。
解决方法
你可以使用这个编写不好的代码:
var $element = $('#element').length ? $('#element') : $('<div id="element"></div>').appendTo('#containerToPutIt');
或者让它更清洁一些:
var $element = $('#element'); if(!$element.length) $element = $('<div id="element"></div>').appendTo('#containerToPutIt');