簡體   English   中英

if語句在jquery中無法正常工作

[英]if statement not working properly in jquery

我有兩個數組: arrmyArraycode 兩者都有從數據庫中檢索到的一些值。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM