Javascript 在数组jQuery中查找值
所以我需要得到数组中保存特定id的部分,以便使用其中的其他变量 以下是创建阵列的当前代码:Javascript 在数组jQuery中查找值,javascript,jquery,Javascript,Jquery,所以我需要得到数组中保存特定id的部分,以便使用其中的其他变量 以下是创建阵列的当前代码: <?php foreach ($list_subjects as $subject): ?> subjects.push({ id: parseInt(<?php echo $subject['subject_id']; ?>), subject_name: "<?php echo $subject['subject_name']; ?
<?php foreach ($list_subjects as $subject): ?>
subjects.push({
id: parseInt(<?php echo $subject['subject_id']; ?>),
subject_name: "<?php echo $subject['subject_name']; ?>",
course_type: "<?php echo $subject['course_type']; ?>",
num_videos: parseInt(<?php echo $subject['num_videos']; ?>),
subject_tag: "<?php echo $subject['subject_tags']; ?>"
});
<?php endforeach; ?>
推({
id:parseInt(),
受试者姓名:“,
课程类型:“,
num_视频:parseInt(),
主题标签:“
});
(我知道以这种方式混合PHP不是很好的做法,但请容忍我的问题)
这是我用来至少尝试和检查值是否在数组中的代码,但它每次都返回-1,当然_id的值在数组中
警报($.inArray(课程id,受试者id))
为什么会发生这种情况?由于id
是subjects
数组中对象的键(因此不是subjects
的属性),因此$.inArray(课程id,subjects.id)
部分不起作用。试一试:
function inArrayById(array, value)
$.each(array, function(i, element) {
if(element.id === value){
return true;
}
});
return false;
}
alert( inArrayById(subjects, course_id) )
$.inArray(course\u id,subjects.id)
部分不起作用,因为id
是subjects
数组中对象的键(因此不是subjects
的属性)。试一试:
function inArrayById(array, value)
$.each(array, function(i, element) {
if(element.id === value){
return true;
}
});
return false;
}
alert( inArrayById(subjects, course_id) )
这是Secators函数的一个变体,只是它在没有jQuery的情况下工作
function inArrayById(array, value) {
for(var i = 0; i < array.length; i++) {
if(array[i]["id"] === value) return true;
}
return false;
}
函数inaraybyid(数组,值){
对于(var i=0;ifunction inArrayById(array, value) {
for(var i = 0; i < array.length; i++) {
if(array[i]["id"] === value) return true;
}
return false;
}
函数inaraybyid(数组,值){
对于(var i=0;ijQuery,所有JavaScript(除了)都在客户端工作;这意味着PHP不仅是“不好的实践”,而且与您提出的问题完全无关。请显示浏览器中显示的渲染标记/JavaScript(查看源代码)?嘿,David,当然可以:subject.push({id:64,subject\u name:“ABCs”,课程类型:1,num\u视频:37,num\u徽章:9,num\u测验:59,subject\u标签:“subject One”});另外,您建议在js中获取php数组值的最佳方法是什么?我知道我可以进行ajax调用等,但有没有一种方法可以让它们在页面加载时进行,而不必发出额外的请求?您可能可以使用PHP中可用的json_encode函数(如果启用了json扩展):jQuery,所有JavaScript(除了)都可以在客户端工作;这意味着PHP不仅是“不好的实践”,而且与您提出的问题完全无关。请显示浏览器中显示的渲染标记/JavaScript(查看源代码)?嘿,David,当然可以:subject.push({id:64,subject\u name:“ABCs”,课程类型:1,num\u视频:37,num\u徽章:9,num\u测验:59,subject\u标签:“subject One”});另外,您建议在js中获取php数组值的最佳方法是什么?我知道我可以进行ajax调用等,但是有没有一种方法可以让它们在页面加载时进行,而不必发出额外的请求?您可能可以使用PHP中可用的json_encode函数(如果启用了json扩展):好的,我来试一试。但是我必须使用each循环吗?哈哈,没什么,我只是不介意使用一个变量来重复使用。我想我可以重新使用你刚才写的函数?我试过了。似乎只返回false。您是否以数字而不是字符串的形式通过了课程id?您确定要查找的对象在阵列中吗?因为Secator的代码是正确的,这是一个非常基本的循环。我没有使用那个变量,而是直接传入了一个我知道在数组中的数字,仍然是假的。好吧,我来试一试。但是我必须使用each循环吗?哈哈,没什么,我只是不介意使用一个变量来重复使用。我想我可以重新使用你刚才写的函数?我试过了。似乎只返回false。您是否以数字而不是字符串的形式通过了课程id?您确定要查找的对象在阵列中吗?因为Secator的代码是正确的,这是一个非常基本的循环。我没有使用那个变量,而是直接传入了一个我知道在数组中的数字,但仍然是错误的。这似乎马上就能满足我的需要。谢谢你,伙计!这似乎马上就能满足我的需要。谢谢你,伙计!