2017-08-02 45 views
1

我使用PHP動態創建表,併爲每列提供一個ID。我想要做的是在點擊按鈕觸發ajax調用之後,改變ID上的類。 ajax部分工作正常,但成功後,我正在努力如何更改所選行列上的類。點擊按鈕觸發ajax調用後,我想將以下元素中的類從class ='active'更改爲class ='inactive'。當然,可能有幾十行。動態創建ID以使用jQuery更改類

該表的HTML看起來像這樣:

<tr> 
<div id='divID4'> 
    <td id='col14' class='active'>S-2016-000700</td> 
    <td id='col24' class='active'>48.0137.000</td> 
    <td id='col34' class='active'>SCHOELL PETER W</td> 
    <td id='col44' class='active'>S-2016-000700 DLQ DRINKING WATER FEE</td> 
    <td id='col54' align='center' class='active'>1</td> 
    <td id='col64' align='right' class='active' style='padding-right:22px;'> $ 2.29</td> 
    <td><input type='text' id='fld4' class='postData' name='S-2016-000700|48.0137.000' value='300.00' /></td> 
    <td><input type='button' id='del4' value='X' /></td> 
</div> 

而jQuery腳本(未優化AT ALL),我試圖讓工作是:

<!-- This ajax function Voids a line. Update DB and change font to strike-through --> 
    <script> 
     $(".voidData").each(function() { 
      $(this).click(function() { 
       var pID = ($(this).attr('id'));  /* id */ 
       var pName = ($(this).attr('name'));  /* Assessment Code | Parcel */ 
       // ajax call to add amounts to temp file 
       $.ajax({ 
        url: "void.php", 
        type: "POST", 
        data: {id : pName}, 
        success: function(data){ 
         pID = pID.substr(3); 
         var c1 = 'col1' + pID 
         $('#' + c1).removeClass('active').addClass('inavctive'); 
         var c2 = 'col2' + pID 
         $('#' + c2).removeClass('active').addClass('inavctive'); 
         var c3 = 'col3' + pID 
         $('#' + c3).removeClass('active').addClass('inavctive'); 
         var c4 = 'col4' + pID 
         $('#' + c4).removeClass('active').addClass('inavctive'); 
         var c5 = 'col5' + pID 
         $('#' + c5).removeClass('active').addClass('inavctive'); 
         var c6 = 'col6' + pID 
         $('#' + c6).removeClass('active').addClass('inavctive'); 
         console.log(c1 + " -- " + c2); 
        }, 
        error: function(){ 
         console.log("ERROR"); 
        } 
       }); 
      }); 
     }); 
    </script> 

我的思考過程是獲得按鈕點擊的ID(var pID),它給了我'索引'行...即,點擊的按鈕的ID是'del4',因此我剝離了'del'部分得到(pID = 4)。我現在知道要更改的列ID是:col14,col24,col34等

我想創建這些作爲要使用的列ID的變量(即:var c1 ='col1'+ pID)在qJuery.removeClass和.addClass函數中。不知道我是否可以用這種方式創建一個'動態'變量ID。

有人可以給我一些想法,我怎麼能做到這一點?我可能做的都是錯誤的,或者至少是艱難的方式,但它是我能想到完成它的唯一方式。

回答

1

你能傳遞數JS是這樣的:

function strike(idNum){ 
     //Setting the classList to "inactive" removes the active class 'active' 
     document.getElementById("col"+idNum).classList = "inactive"; 
    } 
+0

THANK YOU!很棒! – JoeByrne