jQuery的.add在一个空集上
jQuery's .add on an empty set?
我正在开发一个包含很多选项的插件,因此我试图跟踪一组元素并将它们放入变量中。变量不能为空(但这在这里无关紧要)。假设只有两个选项,那么变量将保存一个或两个元素作为 jQuery 对象,即 $("#el1, #el2")
.我尝试了以下内容,但添加的结果仍然$([])
.
var track = $([]);
someFunc() {
if (option1) track.add("#el1");
if (option2) track.add("#el2");
}
// result is `$([])`
请注意,我不想要一个数组,而是一个jQuery选择器,正如我在上面的例子中发布的那样。
您可以先整理出需要哪些元素/选择器。
然后使用这些来初始化track
变量,jQuery对象传入所有相关选择器。
var track = someFunc();
// you would have to check the length of `track` first as it may be only an empty array (length == 0) and no real jQuery object
if (track.length) {
//...
}
// returns a jQuery object with all the matched elements
// or an empty array if there is no relevant selector
function someFunc() {
// place to store the selectors
var selectors = [];
// store the relevant selectors in <selectors>
if (option1) selectors.push("#el1");
if (option2) selectors.push("#el2");
// if there is at least one selector in <selectors>
if (selectors.length > 0) {
// create a jQuery object of them and return it
return $(selectors.join())
} else {
// otherwise we return an empty array
// this allows us to use .length in both cases
return [];
}
// or always return a jQuery object
// return $(selectors.join());
}
在昏迷时使用数组连接:
var elements = [];
elements.push('#one');
console.log(elements.join(','));
$(elements.join(','));
https://jsfiddle.net/8xx8x1xe/
相关文章:
- 节点导出返回一个空对象
- Adobe acrobat每隔30页插入一个空页面-javascript
- 可以使用createRange选择一个空范围
- 创建一个空的JavaScript Promise
- 如何在javascript中创建一个空的2d数组?下面是我想要创建的一个示例
- 是我的第三方JavaScript返回html还是只是一个空对象
- 为什么一个空的200会在jQuery中创建一个失败
- 为什么我从一个空的mongodb数据库中获取数据
- 使用 Redux fetch 的 React js 总是返回一个空的 json
- jstree 是空白的,并且在实例化后有一个空的
- 为什么我的猫鼬对象 Id 请求返回一个空数组
- JS函数将一个空字符串传回php,但有一个值
- 如何在C#MVC/Javascript中的运行时添加一个空实体
- 为什么fetch()发送一个空正文
- Backbone Sync返回一个空的$_POST数组
- 使用Jquery和PHP在POST Ajax之后返回(一个空字符串)
- 防止空输入返回undind,而是返回一个空字符串
- 如何用以下结构定义一个空的javascript对象,以便我可以动态地将数据插入其中
- 为什么我的ajax请求返回一个空响应
- jQuery的.add在一个空集上