我试图获取一个数据字段属性来选择我的" objects.json"将用作我的Bootstrap Typeahead输入文本的来源,例如:
form.html
<input type="text" data-provide="typeahead" data-field="name">
form.js
$("[data-provide=typeahead]").typeahead({
source: function(query, process) {
return $.get("/objects.json", {
query: query
}, function(data) {
return process($.map(data, function(o) {
return o[$(this).data('field')];
}));
});
}
});
objects.json
[{"id":1,"name":"lorem"},
{"id":2,"name":"ipsum"},
{"id":3,"name":"dolor"}]
问题是&#34; $(this).data(&#39;字段&#39;)&#34;在Javascript上没有获取HTML数据字段属性。
提前致谢!
答案 0 :(得分:1)
不知道这是否适用于您,但就我而言,我认为data-field
不起作用。我尝试在线搜索以查看“ 字段”是否为保留字,但找不到任何内容。
无论如何,将data
属性更改为其他任何内容(例如data-myfield
,data-fieldID
等)对我来说都是有效的。
答案 1 :(得分:0)
你试过使用$(this).attr(&#39; data-field&#39;)?我也想看看这里: http://api.jquery.com/attribute-equals-selector/这也可能是你的一些问题,取决于你甚至得到你的初始元素
答案 2 :(得分:0)
试试这个:
$("[data-provide=typeahead]").typeahead({
source: function(query, process) {
return $.get("/objects.json", {
query: query
}, function(data) {
return process($.map(data, function(o) {
return o[$(this).attr('data-field')]; //<-- Use attr()
}));
});
}
});