[英]Function not returning the value - undefined
確實建立了一個函數來從一組元素中返回元素的索引。 但是,當我嘗試將值傳遞給另一個變量(myindex)時,我的確不確定。
這里的Javascript源代碼
$(document).ready(function(){
$("[id*='_CG']").addClass("form-control input-sm text-right");
$("[id*='_Weight']").addClass("form-control input-sm text-right");
$("[id*='TXFuelWeight']").addClass("form-control input-sm text-right");
$("[id*='TRPFuelWeight']").addClass("form-control input-sm text-right");
myindex = GetLSElementIndex("[id*='W_OP_']", "W_OP_CAB1Items");
alert (myindex);
});
// Get the index element in a group of element
function GetLSElementIndex(ElementGroup, Element) {
$(ElementGroup).each(function (index) {
var someText = $(this).attr('id');
if (someText == Element) {
alert(someText);
alert(index);
//GetLSElementIndex = index;
//alert(GetLSElementIndex);
return ;
//return index;
}
});
}
您需要這樣使用:
var indx;
if (someText == Element) {
alert(someText);
alert($('#'+Element).index());//Don't do just alert(index)
indx = $('#'+Element).index();//I need to find index of ? #W_OP_CAB1Items
return indx;
}
function GetLSElementIndex(ElementGroup, Element) {
var value = -1; //If no element is found, index is assumed to be -1
$(ElementGroup).each(function (index) {
var someText = $(this).attr('id');
if (someText == Element) {
alert(someText);
value = index;
alert(value);
return false;//To break out of each() once the index is found.
}
});
return value; //Return the value (from the called fn) once the processing is done
}
返修您GetLSElementIndex
通過定義該方法一個全局變量的方法像這樣與該索引分配each
循環到並返回它,然后把return語句出的each
循環。
演示: FIDDLE
// Get the index element in a group of element
function GetLSElementIndex(ElementGroup, Element) {
var setIndex;
$(ElementGroup).each(function (index) {
var someText = $(this).attr('id');
setIndex = index;
if (someText == Element) {
alert(someText);
alert(index);
}
});
return setIndex;
}
注意:此方法僅返回each
循環的最后一項的索引。
您必須打破“每個jQuery”,然后返回索引。 混亂點是“ jQuery每次”被“ return false”語句破壞。 您必須將索引值存儲在某些局部變量中(以下函數中的var toReturn ..)。 這是為您修改的GetLSElementIndex函數
// Get the index element in a group of element
function GetLSElementIndex(ElementGroup, Element) {
var toReturn;
$(ElementGroup).each(function (index) {
var someText = $(this).attr('id');
if (someText == Element) {
//alert(someText);
// alert(index);
toReturn= index;
//GetLSElementIndex = index;
//alert(GetLSElementIndex);
return false ;
//return index;
}
});
return toReturn;
}
有關更多詳細信息,請關注其他堆棧溢出問題
更新您的函數以將所需元素的索引存儲在變量中,然后返回該變量。
function GetLSElementIndex(ElementGroup, Element) {
var elementIndex;/* store the index of #element here */
$(ElementGroup).each(function (index) {
var someText = $(this).attr('id');
if (someText == Element) {
elementIndex = index;
}
});
return elementIndex; /* will return index of #element if found otherwise will return undefined */
}
我已刪除所有警報,因為我認為這些警報是出於調試目的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.