2015-06-24 110 views
2

改變內表元素我有這樣的代碼:如何使用Java腳本

<!DOCTYPE html> 
<html> 
<body> 

<button onclick="myFunction()">Click me</button> 

<table class="demo"> 
    <div> 
     <a>link1</a> 
     <p>text</p> 
    </div> 
</table> 

<a>link2</a> 

<script> 
function myFunction() { 
    var el = document.getElementsByClassName("demo")[0].getElementsByTagName("a"); 
    for (var i = 0; i < el.length; i++) { 
     el[i].style.color = "red"; 
} 
} 
</script> 

</body> 
</html> 

我想只改變這些鏈接這是table內。是否有可能使用js?這個怎麼做?

+0

建議使用'document.querySelectorAll('table.demo a');'獲取所有鏈接。 – Cyrbil

回答

1

您的html無效,div不能是table的子女。

既然你不使用任何表結構改變tablediv

function myFunction() { 
 
    var el = document.getElementsByClassName("demo")[0].getElementsByTagName("a"); 
 
    for (var i = 0; i < el.length; i++) { 
 
    el[i].style.color = "red"; 
 
    } 
 

 
}
<button onclick="myFunction()">Click me</button> 
 
<div class="demo"> 
 
    <div> 
 
    <a>link1</a> 
 
    <p>text</p> 
 
    </div> 
 
</div> 
 
<a>link2</a>

呈現的HTML作爲顯示下面的圖像時使用的標記,如果你看它的div被渲染出table

enter image description here

+0

http://jsfiddle.net/arunpjohny/pj0b1mw2/ –

0

實際上,div可以在td標籤內。

<!DOCTYPE html> 
<html> 
<body> 

<button onclick="myFunction()">Click me</button> 

<table class="demo"> 
<tr> 
<td> 
<div> 
<a>link1</a> 
<p>text</b> 
</div> 
</td> 
</tr> 
</table> 
<a>link2</a> 

<script> 
function myFunction() { 
    var el = document.getElementsByClassName("demo")[0].getElementsByTagName("a"); 
    for (var i = 0; i < el.length; i++) { 
     el[i].style.color = "red"; 
} 

} 
</script> 

</body> 
</html> 

它的工作。 IBM Websphere Portal使用這樣的構造。

0

您應該使用span標籤。

<!DOCTYPE html> 
<html> 
<body> 

<button onclick="myFunction()">Click me</button> 

<table class="demo"> 
<tr> 
<td> 
<div> 
<a><span id="link1">link1</span></a> 
<p>text</b> 
</div> 
</td> 
</tr> 
</table> 
<a>link2</a> 

<script> 
function myFunction() { 
    document.getElementById("link1").innerHTML="abcd"; 

} 
</script> 

</body> 
</html> 

按鈕點擊將更改使用js的鏈接。您可以使用span的id做任何類型的css更改。 如果這解決了您的查詢,請立即註冊。