Javascript find 方法在第一次匹配后不会停止
Javascript find method doesn't stop after first match
我的问题是,我想通过javascript提取一个特定的css类(grid-8/col-4)。
如果所需的类是第一个或唯一的数组元素,javascript 函数"find"会为匹配元素返回未定义,这对我来说没有意义。查找方法规范
我找不到错误。每个控制台.log语句都返回预期值,但"find"函数除外。
希望你能给我一个提示!
.HTML:
<div class="grid-8 layout">
<div class="col-4 master">
<h1>Headline</h1>
<p>Lorem ipsum dolor sit amet.</p>
</div>
</div>
JavaScript:
$(function() {
var $layout = $(".layout");
var $elem = $(".master");
var layoutColumNumber = getNumberOfColums($layout, 'grid');
var elementColumNumber = getNumberOfColums($elem, 'col');
function getNumberOfColums(object, type){
var classArray = getElementClassArray(object);
var elementColWidth = null;
switch(type){
case 'grid':
elementColWidth = classArray.find(gridClassPosition).split("-")[1];
break;
case 'col':
elementColWidth = classArray.find(colClassPosition).split("-")[1];
break;
}
return elementColWidth;
}
function getElementClassArray(object){
return object.attr('class').split(' ');
}
function gridClassPosition(element, index, array){
return (element.startsWith('grid-')) ? index : false;
}
function colClassPosition(element, index, array){
return (element.startsWith('col-')) ? index : false;
}
});
答案是,数组中第一个元素的索引为 0。在 JavaScript 中,0 没有真正的值。这是一个错误的值。
这就是为什么 find 函数返回规范中正确描述的"未定义"的原因。
在这种情况下,返回值无关紧要。因此,如果"find"到达所需的元素,则返回true就足够了。
使用console.log(classArray.find(colClassPosition))
您将看到数组中有当前元素,而您可以在其中调用 split 函数。
相关文章:
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- Ember.js-模型find()方法中的异步调用
- Javascript find 方法在第一次匹配后不会停止
- Ember:使用this.get('controller.').content,find方法
- 如何等到find方法完成后再在Ember模型中进行进一步处理
- 为什么 JavaScript 中的对象没有 find 方法
- 如何在节点/环回中同步调用 model.find 方法
- Typerror:mongo 模块的 find 方法是未定义的
- 在jQuery中使用find方法时获取多个标记值
- jQuery get Inner
一张桌子的;使用.find()方法使用不同的类 - 如何使用jQuery's .find方法与正则表达式作为参数
- jQuery find()方法不能只在一个类上工作
- Jquery .find()方法——由逗号连接的dom组成的参数
- 从Mongoose find方法中的其他集合中获取数据
- Ember数据's find方法:处理SQL'或者'等效查询
- 通过Mongoose获取集合失败(Object{}没有'find'方法)
- 使用mongoose.find()方法在构造函数中设置javascript对象属性
- 为什么我的find方法返回undefined ?
- 在XML对象上没有find()方法