如何在点击时更改对象值?

时间:2014-01-26 11:26:24

标签: javascript jquery html kineticjs

我在jsonObjects[i].type中使用名为menu的{​​{1}}填充/插入div。我从菜单中的#changetotypes获取了值rce,知道我希望能够点击值jsonObjects[i].type,{{1} }和r并将值更改为单击的值。知道我可以点击一个对象,它显示的值为cer。 因此,如果我单击某个对象,它会在对象所具有的菜单中显示/显示值c ejsonObjects[i].typer。知道如何将点击的对象值示例从c更改为e

r

2 个答案:

答案 0 :(得分:0)

您需要为每个#changetotypes子项添加一个click事件侦听器,然后更改该子项的内部html。

您可能需要为每个孩子提供一个id,以了解如何获取每个孩子的参考。

希望它有所帮助。

答案 1 :(得分:0)

您可以尝试以下(jsFiddle)之类的内容。假设jsonObjects来自其他地方。

function populateTypes() {
    var availableTypes = [];
    for(var i = 0; i < jsonObjects.length; i++) {
        if(availableTypes.indexOf(jsonObjects[i].type) < 0) {
            availableTypes.push(jsonObjects[i].type);
            $('<li><a href="#">' + jsonObjects[i].type + '</a></li>')
            .data('type', jsonObjects[i].type)
            .on('click', function(){ $('#currenttype').text($(this).data('type')); })
            .appendTo('#changetotypes');
        }
    }
}

这时我们创建&lt; li /&gt;对于特定类型的元素,我们在更改currenttype元素的文本的同时添加单击处理程序。

我们将要更改currenttype的类型存储在&lt; li /&gt;的数据中。因此我们不必担心closures in the loop,但还有其他方法可以解决这个问题,比如创建一个返回函数的函数(请参阅链接)或使用&lt; a /的内容&GT; element(如$('a',$(this))。text())。