jQuery未使用MVC Razor语法启动的每个函数
Razor语法相当陌生,但我在Razor视图上有一些jQuery代码,如下所示:-jQuery未使用MVC Razor语法启动的每个函数,jquery,asp.net-mvc,razor,Jquery,Asp.net Mvc,Razor,Razor语法相当陌生,但我在Razor视图上有一些jQuery代码,如下所示:- @section Scripts { <script type="text/javascript"> $(document).ready(function () { console.log('test1'); var test = $('#4-10-documentation'); console.log(test);
@section Scripts {
<script type="text/javascript">
$(document).ready(function () {
console.log('test1');
var test = $('#4-10-documentation');
console.log(test);
$('#4-10-documentation').each(function () {
console.log('test2');
});
console.log('test3');
});
</script>
}
因此,jQuery在直接指定第一个对象时不会遇到问题,但由于某种原因,。每个
函数根本不会启动。有什么原因吗
别担心,这里的代码是真实代码的简化版本,我使用的是类选择器,而不是这里显示的id选择器
注意:-
事实证明,该元素来自通过ajax加载的部分视图,因此document.ready()中不存在元素id
感谢大家的帮助。当您尝试匹配选择器时,jQuery将始终返回一个对象-无论是否找到与选择器匹配的DOM元素。这就是为什么当您使用console.log时会看到输出
对象[]
如果您使用的是Firebug,我会检查您的HTML,看看您试图使用jQuery循环的DOM元素是否在呈现的HTML中。通过使用$(“#4-10-documentation”).length()
如果
length()<代码>id
必须是唯一的。@TusharGupta OP提到他在“真实”代码中没有使用id。如果您使用的是类选择器,那么我觉得这很好。它正在创建一个对象数组,这是预期的结果,对吗?@Jeevan Jose-写入控制台的对象来自第一个选择器(var test…)@Roger Pennink-是的。长度为0。事实证明该元素是通过ajax加载的,这就是为什么在document.ready()中找不到它的原因
test1
Object[]
test3