indexof() 不选择字符串的第一个实例
indexof() not selecting the first instance of string
一段时间以来我一直在努力解决这个问题,但我似乎做不到。
我有这个用于 casperjs
var size = this.evaluate(function () {
var number = 10;
var size;
$('select[name="placeholder"] option[name="plId"]')
.each(function (index, dom) {
var currentsize = $(dom).attr('value');
if (String(currentsize).indexOf(
String(number)) > -1) {
size = currentsize;
}
});
return size;
});
并且我正在尝试从值
select 10
<option name="plId" value="25437456:10" data-label="(10)">10</option>
<option name="plId" value="53467763:10.5" data-label="(10.5)">10.5</option>
但由于某种原因,它每次都 selects 10.5,当它应该 select 10.
有人知道怎么回事吗?感谢帮助。
.each()
循环处理每个元素。因此 size
变量最终将成为匹配的 last 项目而不是第一个。
您可以通过从传递给 .each()
的函数中返回 false
来在匹配后立即停止循环。
var size = this.evaluate(function() {
var number = 10;
var size;
$('select[name="placeholder"] option[name="plId"]')
.each(function(index, dom) {
var currentsize = $(dom).attr('value');
if (String(currentsize).indexOf(
String(number)) > -1) {
size = currentsize;
return false; // <--- ADD THIS
}
});
return size;
});
一段时间以来我一直在努力解决这个问题,但我似乎做不到。
我有这个用于 casperjs
var size = this.evaluate(function () {
var number = 10;
var size;
$('select[name="placeholder"] option[name="plId"]')
.each(function (index, dom) {
var currentsize = $(dom).attr('value');
if (String(currentsize).indexOf(
String(number)) > -1) {
size = currentsize;
}
});
return size;
});
并且我正在尝试从值
select 10<option name="plId" value="25437456:10" data-label="(10)">10</option>
<option name="plId" value="53467763:10.5" data-label="(10.5)">10.5</option>
但由于某种原因,它每次都 selects 10.5,当它应该 select 10.
有人知道怎么回事吗?感谢帮助。
.each()
循环处理每个元素。因此 size
变量最终将成为匹配的 last 项目而不是第一个。
您可以通过从传递给 .each()
的函数中返回 false
来在匹配后立即停止循环。
var size = this.evaluate(function() {
var number = 10;
var size;
$('select[name="placeholder"] option[name="plId"]')
.each(function(index, dom) {
var currentsize = $(dom).attr('value');
if (String(currentsize).indexOf(
String(number)) > -1) {
size = currentsize;
return false; // <--- ADD THIS
}
});
return size;
});