2010-11-19 23 views
9

Tôi đang viết tập lệnh xác thực biểu mẫu cho biểu mẫu có nhiều xếp hạng và tôi muốn chèn một chút văn bản có nội dung "xếp hạng!" cho mỗi xếp hạng người dùng bỏ lỡ. Tôi đã viết mã dưới đây để làm điều này, nhưng tôi đang chạy vào một vấn đề mà nút give_rating chỉ được nối vào nút cuối cùng trên biểu mẫu. Tôi biết rằng điều này là bởi vì appendChild về cơ bản di chuyển một nút thay vì sao chép nó, và tôi đã cố gắng giải quyết điều này bằng cách sử dụng cloneNode nhưng điều đó chỉ phá vỡ JS của tôi hoàn toàn.Sử dụng appendChild nhiều lần với cùng một nút trong JS

Dù sao, đây là mã. Tôi đang làm gì sai?

Nhờ sự giúp đỡ của bạn,

Chris

var give_rating = document.createElement('span'); 
give_rating.className='small red'; 
give_rating.innerHTML = '<strong> &nbsp;Give a rating!</strong>'; 

document.getElementById('rating1').appendChild(give_rating); 
document.getElementById('rating2').appendChild(give_rating); 

Khi tôi sử dụng mã trên mã give_rating chỉ được nối vào 'rating2'.

document.getElementById('rating1').appendChild(give_rating.cloneNode(True)); 
document.getElementById('rating2').appendChild(give_rating.cloneNode(True)); 

Khi tôi sử dụng mã này toàn bộ tập lệnh không thành công. Làm cách nào để thêm một trường hợp "Cung cấp xếp hạng!" cho mỗi xếp hạng trên biểu mẫu của tôi mà người dùng không điền vào?

Trả lời

4

JavaScript phân biệt chữ hoa chữ thường: True phải là true (chữ thường).

+0

OMG casablanca, tôi đã tải xuống Firebug ngay sau khi gửi câu hỏi này, chạy Console và tìm hiểu điều này. Cám ơn phản hồi của bạn. JS thúc đẩy tôi hạt :) – Chris

0
  1. Bạn chỉ có thể chèn phần tử html hoặc phần tài liệu đã tạo một lần. Vì vậy, bạn phải gọi hàm cloneNode().
  2. javascript phân biệt chữ hoa chữ thường. Vì vậy, nó phải là cloneNode(true), thay vì cloneNode(True).
  3. Bạn có thể bật trình gỡ lỗi javascript của trình duyệt (cả Chrome và IE/Edge) bằng cách nhấn F12. Sau đó, bạn có thể thấy những gì xảy ra với kịch bản của bạn.
Các vấn đề liên quan