Mam obiekt JavaScript, który wygląda następująco. JavaScript: Zaktualizuj wartość obiektu, pobierając nazwy zmiennych z ciągu znaków
var myObj = [
{
"HOLIDAY": {
"Sun": "Date",
"Mon": "Date",
"Tue": "Date",
"Wed": "Date",
"Thr": "Date",
"Fri": "Date",
"Sat": "Date"
}
}
]
i mam jakiś kod HTML, który wygląda jak ten
<input data-event="change"
data-variable="myObj"
data-bind="[0]['HOLIDAY']['Sun']"
type="text">
HTML Mam przechowywanej o zmiennej JavaScript zmodyfikować jeśli robię żadnych zmian tej dziedzinie. Napisałem kod JavaScript, który wygląda tak.
$(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());
});
Czy istnieje lepsze podejście do tego problemu, obecnie używam eval()
których nie chcesz używać, jak wiele elementów będzie miał „change” zdarzenie i show „eval” może mieć wpływ na wydajność mojego kodu.
pierwszy masz 2 atrybuty danych o nazwie takiej samej – madalinivascu
Chang? czy to się zmieni? '[data-bind = onchange]' ... czy powinno to być '[data-bind = onChange]'? tyle zła –
Najpierw '.on ('chang',' powinno być '.on ('zmień','. Po drugie, * czy istnieje lepsze podejście *, jeśli pytanie dotyczy ulepszeń/optymalizacji, opublikuj go na CodeReviews – Rajesh