Tôi có đối tượng JavaScript trông như thế này. JavaScript: Cập nhật giá trị đối tượng bằng cách truy xuất tên biến từ chuỗi
var myObj = [
{
"HOLIDAY": {
"Sun": "Date",
"Mon": "Date",
"Tue": "Date",
"Wed": "Date",
"Thr": "Date",
"Fri": "Date",
"Sat": "Date"
}
}
]
và tôi có một số mã HTML mà trông như thế này
<input data-event="change"
data-variable="myObj"
data-bind="[0]['HOLIDAY']['Sun']"
type="text">
Mở HTML tôi đã được lưu trữ mà biến JavaScript để thay đổi nếu tôi làm bất kỳ thay đổi lĩnh vực đó. Tôi đã viết mã JavaScript trông như thế này.
$(document).on('change', '[data-event= change]', function(){
//get-variable-name where to bind data
//Get object location inside the variable
var sVarName = $(this).data('variable');
var sObjLoca = $(this).data('bind');
eval(sVarName+sObjLoca +' = ' $(this).val());
});
Có phương pháp nào tốt hơn cho vấn đề này, hiện nay tôi đang sử dụng eval()
mà tôi không muốn sử dụng, như nhiều yếu tố sẽ có sự kiện 'thay đổi' và chương trình 'eval' có thể ảnh hưởng đến việc thực hiện mã của tôi.
đầu tiên bạn đã 2 thuộc tính dữ liệu có tên giống nhau – madalinivascu
chang? điều đó có nên thay đổi không? '[data-bind = onchange]' ... phải là '[data-bind = onChange]'? quá nhiều sai lầm –
Đầu tiên '.on ('chang',' nên là '.on ('thay đổi','. Thứ hai, * Có cách nào tốt hơn *, nếu câu hỏi là về cải tiến/tối ưu hóa, vui lòng đăng nó trên CodeReviews – Rajesh