[英]if statement not working properly in jquery
我有兩個數組: arr
和myArraycode
。 兩者都有從數據庫中檢索到的一些值。 myArraycode
的值顯示在每一行的select
。 現在,我需要禁用所有沒有在arr
數組中顯示值的行。
例如,
arr =["abc","cde"];
myArraycode=["sample","abc","cde"];
我有三個表行,其中一行包含sample
,另一行包含abc
,第三行包含cde
。 現在我需要禁用帶有sample
的行,因為sample
不在數組arr
。
我嘗試了以下代碼:
var kt = 0;
var kts = 0;
var sk=0;
var sv =0;
while(kt < myArraycode.length)
{
if($.inArray(myArraycode[kt],arr) === -1 )
{
$("#table tr").find('td').find("select:contains("+myArraycode[kt]+")").closest('tr').find('input[type=text]').attr("disabled","disabled");;
$("#table tr").find('td').find("select:contains("+myArraycode[kt]+")").closest('tr').find('select').attr("disabled","disabled");;
}
kt++;
}
請幫我解決問題。
arr =["abc","cde"];
myArraycode=["sample","abc","cde"];
for(var i=0; i < myArraycode.length; i++)
{
if($.inArray(myArraycode[i],arr) === -1 )
{
$('option[selected="selected"]:contains("'+myArraycode[i]+'")').parent().attr('disabled','disabled');
}
}
我已經糾正了一些語法錯誤,但這應該可以為您解決問題。出於性能原因,您也可以使用遞減的for循環,也可以將array.length值保存在變量中,這樣循環就無需重新計算珍惜每次運行
我已經在jsfiddle中更新了您的答案
請注意,HTML需要選中屬性才能起作用
<option value="sample" selected="selected">sample</option>
我嘗試了以下代碼來禁用具有所選值作為示例的選擇框
$( document ).ready(function(e){
arr =["abc","cde"];
myArraycode=["sample","abc","cde"];
for(var i=0; i < myArraycode.length; i++)
{
if($.inArray(myArraycode[i],arr) === -1 )
{
$("select").each(function(){
if($(this).val() == myArraycode[i])
{
$(this).closest('tr').find('select').attr('disabled','disabled');
}
});
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.