我正在建立一个网站,我在php变量中有一些数据。 我正在尝试将这些数据用于支持Java的浏览器的jQuery引擎。
我遇到了在jQuery脚本中使用php变量的问题:
这是我无法工作的代码。
// PHP数组:
$filters['ab']='text a';
$filters['cd']='text b';
// jQuery脚本:
// Key I want to find in array
var test = "ab";
// Reading php array into JSON
filters = $.parseJSON('<?php echo json_encode($filters); ?>');
// Trying to use JSON data to create Array using original keys and values
var filtersArray = new Array();
$.each(filters, function(key) {
filtersArray[key] = $(filters).attr(key);
});
alert(filtersArray['ab']); returns "text a"; // Seems to be working
// Trying to find the test variable value
filterIndex = $.inArray(test, filtersArray) // Not found
对于之前粗略的帖子抱歉。我虽然越短越好,但实际上它完全没用。
由于
答案 0 :(得分:2)
我认为你需要这样的东西
function inObject(obj, val) {
return Object.keys(obj).filter(function(key) {
return obj[key] === val;
}).length > 0;
}
这里的jsFiddle演示 - http://jsfiddle.net/VZ5A9/
有关浏览器兼容性以及添加支持的填充程序
,请参阅以下页面如果您需要找到密钥,请尝试使用此密钥(这也与旧版浏览器更兼容)
function findFirstKeyByValue(obj, val) {
for (var key in obj) {
if (obj.hasOwnProperty(key) && obj[key] === val) {
return key;
}
}
return null;
}
答案 1 :(得分:1)
这不起作用的原因是因为您命名为arr
的变量不是数组,而是一个对象文字。要使此代码生效,请尝试此操作(FIDDLE):
arr = ["b","d","f"];
uri = "d";
alert(jQuery.inArray(uri, arr));