0

我一生都无法弄清楚为什么这行不通。我正在尝试从 json 文件中提取使用循环创建的文本字段的值。

在这段代码中,在最底部我只是做一个简单的 click(function() {alert()} 只是为了看看我是否可以提取一个值并返回未定义的值。但是如果我删除 '#name' 并放入 'input ' 它会捕获它,但仅限于几个输入字段中的第一个。

非常感谢任何帮助

JSON

{
"Controls": [{
    "Button":[{ "Name":"Button", "x": "1","y": "2","width": "3","height": "4","Transition":"" }],

    "Image":[{"x": "5","y": "6","width": "7","height": "8"}],

    "TextField":[{"x": "9","y": "10","width": "11","height": "12","Rows":""}]
}]

}

代码(上面有一些 getJSON 的东西)

//Slide In Attributes Panel Based on Selected Object
$(document).on('click', '#code li', function () {
    var index = $('#code li').index(this);
    var selected = $(this).text();
    switch (selected) {
        case selected:
            $('#options').hide();
            hidePanels();
            $('#temp').remove();
            $('#objectAttributes').show("slide", 200);
            break;

        //If it does work show what variable is being used
        default:
            alert(selected);
            break;
    }

    //Shows Selected LI Index
    $('#codeIndex').text("That was div index #" + index);

    //Pull list of Attributes for selected Object
    $.getJSON('controls.json', function (data) {
        //Build Attributes List
        var attributeList = '<div id="temp">';
        //Target based on selected object
        var target = selected;
        attributeList += '<div>' + target + '<div>';
        $.each(data.Controls[0][target][0], function (kk, vv) {
            attributeList += '<div style="float:right">' + kk + ':' + '<input type="text" id='+ kk + '>' + '</input>' + '</div>';
        });
        attributeList += '</div></div>';
        attributeList += '</div>';
        $('#objectAttributes').append(attributeList);
        $('#temp').append('<div id="editIndex">'+"Modifying index" + " " +index+'</div>');

        $(document).on('click', '#saveAttributes', function () {
            var $x = $('#name').val();
            alert($x);
        })
    });


});
4

1 回答 1

0

好的,所以在使用 jsfiddle 进行了一些修改之后,答案比我最初想象的要简单得多。从 HTML 4.01 类名和 ID 开始区分大小写(参考),这意味着您的选择器$('#name')与 JSON 不匹配Name

所以一个简单的改变,比如在这个简化的 jsfiddle 中似乎可以按需要工作。希望这会有所帮助!

于 2012-12-27T06:06:20.357 回答