2014-02-28 43 views
0

代碼:表靶向類行

var table = document.getElementById('some-table'); 
var row = table.rows; 

alert(row.length); // Returns number of rows 

// Function to hide class on specific row when some action is performed 
function someFunc(i) { 
    var elementToTarget = row[i].getElementsByClassName('some-class'); 
    var otherElementToTarget = row[i].getElementsByClassName('some-other-class'); 

    elementToTarget.style.display="none"; // Returns "elementToTarget.style 
              //   is undefined" 
    otherElementToTarget.style.display="inline"; // Returns undefined 
} 

基本表格佈局:

<table> 
    <tr> 
     <td> 
      <div class="some-class"></div> 
      <div class="some-other-class"></div> 
     </td> 
    </tr> 
</table> 

我想要做什麼:當用戶觸發someFunc(),它隱藏了一些一流並顯示一些其他類。但它只能隱藏某一行的某些類。不是所有的行。

我的問題:它告訴我該行中的元素是未定義的,我無法對它們執行任何操作。我很可能是不恰當地瞄準這些類。

希望我已經清楚了。如果你需要更多的澄清,讓我知道。

編輯:行中可能並不總是存在「某些其他類」。這就是爲什麼我不能只針對其中一個div的原因。我需要知道他們的行。

+0

哪裏是'someFunc()'調用,什麼參數? – CodingIntrigue

+0

@Rraham在這個例子中,它將在其他一些類的div上。像這樣,onclick = someFunc(0)(因爲它的第一行)。但是,如果它在第53行,它會是一些功能(52)。 –

回答

1

我會引用你到getElementsByClassName函數的API。 https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByName

此外,請注意名稱 - Element * s *。它返回一個列表。你的功能應該相應地對待它。所以,e.g:

var elementToTarget = row[i].getElementsByClassName('some-class')[0]; 
var otherElementToTarget = row[i].getElementsByClassName('some-other-class')[0]; 

看看這個小提琴:http://jsfiddle.net/YD78S/