根据JSON数据使用jQuery定位元素

时间:2013-02-26 10:38:32

标签: javascript jquery json

我有一个动态生成的表单,我从异步AJAX调用获得,我在JSON对象中提供了一些设置。我想专门用jQuery来定位一个字段,所以我将JSON数据加载到JS变量来处理它:

var jsonData = {{response.write(session.j_jsondata, escape=False)}};
/*
I'm using Web2Py, so the part between the double curly braces is equal to:
{'fields': [{'required': 'true', 'type': 'mtext', 'name': 'desc'}]}
*/

数据被正确加载到变量中,但是当我想要使用jsonData.fields [somenumber] .name中的名称来定位它时它不起作用..我已经尝试过这样:

jQuery("form [name="+jsonData['fields'][i]['name']+"]")

我没有错误。任何想法为什么它没有针对预期元素?谢谢!

编辑: 我尝试过改变一下结构。我没有使用名称,而是选择了ID(我更新了模板视图)并切换到了

jQuery("#"+jsonData['fields'][i]['name'])

但仍然没有雪茄。它可能有一些问题,因为该字段是在AJAX调用之后生成的,但这很奇怪,因为脚本在生成表单后被调用。所以最后发生的事情就是执行这个以脚本为目标的脚本,但它不起作用。魔法。

2 个答案:

答案 0 :(得分:2)

可能是因为缺少属性选择器的引用。试试这个:

$('form [name="'+jsonData['fields'][i]['name']+'"]')

答案 1 :(得分:2)

在本地网页上测试后,我发现表单和方括号之间没有空格,因此您的选择器应显示为:

jQuery("form[name="+jsonData['fields'][i]['name']+"]")

干杯,

特伦斯。