2017-03-02 41 views
1

所以我非常喜歡它是在每行中搜索td的innerHTML ....但是我試圖抓住輸入從下面在每行內部的單元格內搜索標籤的名稱

<table> 
    <tbody> 
     <tr> 
      <td><input name="Client"></td> 
     </tr> 
    </tbody> 
</table> 

這裏的name屬性就是我到目前爲止

var q = document.getElementById("q"); 
var v = q.value.toLowerCase(); 
var rows = document.getElementsByTagName("tr"); 
var on = 0; 
for (var i = 0; i < rows.length; i++) { 
    var fullname = rows[i].getElementsByTagName("td"); 
    fullname = fullname[0].innerHTML.toLowerCase(); 
    if (fullname) { 
     if (v.length == 0 || 
       (v.length < 3 && fullname.indexOf(v) == 0) || 
       (v.length >= 3 && fullname.indexOf(v) > -1)) { 
      rows[i].style.display = ""; 
      on++; 
     } else { 
      rows[i].style.display = "none"; 
     } 
    } 
} 
var n = document.getElementById("noresults"); 
if (on == 0 && n) { 
    n.style.display = ""; 
    document.getElementById("qt").innerHTML = q.value; 
} else { 
    n.style.display = "none"; 
} 

但是現在它只有td內表明....我如何得到上面去尋找的名字輸入內部的TD?

非常感謝。

+0

你問如何獲得在給定的'​​的'的'name'屬性''的價值,或者是你問如何找到''其'name'屬性有一個給定的值? –

+0

我想獲得輸入內的名稱屬性的值 – Cleardragonf

回答

1

你並不需要爲大量的代碼。在大多數現代瀏覽器中,這個工作。

//For 1 value 
 
myInput = document.querySelector('#tablename td [name="Client"]'); 
 
console.log(myInput); 
 

 
//For more values 
 
myInput2 = document.querySelectorAll('#tablename td [name="Client"]'); 
 
console.log(myInput2); //it's an array now 
 

 
//Like this? 
 
myInput3 = document.querySelector('#tablename td [name]'); 
 
if(myInput3.getAttribute('name') == 'Client'){ 
 
    myInput3.setAttribute('name', 'something'); 
 
} 
 
console.log(myInput3.parentElement);
<table id="tablename"> 
 
    <tr> 
 
    <td><input name="Client"></td> 
 
    </tr> 
 
</table>

+0

好的...這是更接近...但是說我需要「客戶端」部分是可更改的,因爲它從event.target獲取值?這將如何工作?原因是實際上有內部html在我需要得到的基礎上,名稱。 – Cleardragonf

+0

嗯,不,我可能不清楚哈哈哈。首先,我實際上需要在td內搜索iput的名稱。那麼如果(輸入的名稱=='值')我需要它帶回TD的輸入是在 – Cleardragonf

+0

只需將parentElement添加到它來獲得td。 –

1

如果你有到<td>元素的引用,你可以使用querySelector去的<input>參考(假設它是唯一的或第一<input>後裔),然後getAttribute得到name屬性的值:

// You already have a reference to the <td> 
 
const td = document.querySelector('td'); 
 

 
// Get the <input> 
 
const input = td.querySelector('input'); 
 

 
// Get its `name` attribute 
 
const name = input.getAttribute('name'); 
 
console.log('name is "%s"', name);
<table> 
 
    <tbody> 
 
     <tr> 
 
      <td><input name="Client"></td> 
 
     </tr> 
 
    </tbody> 
 
</table>

+0

好吧,但現有的代碼如何工作?因爲給出的結構...目前無法與我使用的代碼一起工作。 – Cleardragonf