2009-10-30 42 views
24

Tôi đang sửa đổi ID của một phía khách hàng phần tử HTML div bằng JavaScript. Mã sau hoạt động OK trong Internet Explorer nhưng không hoạt động trong Firefox/2.0.0.20. Nó hoạt động trong các phiên bản Firefox mới hơn.Làm cách nào để thay đổi ID của phần tử HTML bằng JavaScript?

document.getElementById('one').id = 'two'; 

bất cứ ai có thể cho tôi biết:

  1. Tại sao điều này không hoạt động trong FireFox.
  2. Cách thực hiện công việc này trong FireFox.

Để làm rõ, tôi đang thay đổi ID phần tử để tham chiếu một kiểu khác trong biểu định kiểu bên ngoài. Kiểu được áp dụng trong IE nhưng không được áp dụng trong FF.

+2

Nên làm việc tìm thấy trong firefox - điều gì làm cho bạn nghĩ rằng nó không phải là? – Greg

+1

Điều này phù hợp với tôi trong Firefox, bạn có gặp phải lỗi JavaScript không? Bạn có thể đăng thêm các ví dụ mã không? –

+0

Tải xuống Firebug và có giao diện để xem lỗi nào được ném trong cửa sổ bảng điều khiển –

Trả lời

33

Nó hoạt động trong Firefox (bao gồm 2.0.0.20). Xem http://jsbin.com/akili (thêm /edit để url để chỉnh sửa):

<p id="one">One</p> 
<a href="#" onclick="document.getElementById('one').id = 'two'; return false">Link2</a> 

Các nhấp chuột đầu tiên thay đổi id-"two", các lỗi nhấp chuột thứ hai bởi vì các yếu tố với id="one" bây giờ không thể được tìm thấy!

Có thể bạn có một yếu tố khác đã là với id="two" (FYI you can't have more than one element with the same id).

+1

+1 Để tải lên một ví dụ – Seb

7

Đó dường như làm việc cho tôi:

<html> 
<head><style> 
#monkey {color:blue} 
#ape {color:purple} 
</style></head> 
<body> 
<span id="monkey" onclick="changeid()"> 
fruit 
</span> 
<script> 
function changeid() 
{ 
var e = document.getElementById("monkey"); 
e.id = "ape"; 
} 
</script> 
</body> 
</html> 

Các hành vi dự kiến ​​là để thay đổi màu sắc của từ "quả".

Có lẽ tài liệu của bạn chưa được tải đầy đủ khi bạn gọi là thường trình?

+0

Xem chỉnh sửa gần đây nhất của tôi. – Tesseract

3

Bạn có thể thay đổi id mà không cần phải sử dụng getElementById

Ví dụ:

<div id = 'One' onclick = "One.id = 'Two'; return false;">One</div> 

Bạn có thể nhìn thấy nó ở đây: http://jsbin.com/elikaj/1/

Tested với Mozilla Firefox 22 và Google Chrome 60,0

Các vấn đề liên quan