我正在尝试调试下面的jquery / js代码。所以我一直在寻找元素的索引。但是它正在返回-1
。
在jsFiddle中它运作良好。但是在迁移到asp.net IDE时,这是-1
。
标记:
<div class="cart">
<h2>Cart 1</h2>
<p>Books </p>
<table class="cartcontent" data-options="fitColumns:true, singleSelect: true">
<thead>
<tr>
<th data-options="field:'name',width:100">Name</th>
<th data-options="field:'quantity',width:100">Quantity</th>
<th data-options="field:'balance',width:100,align:'right'">Balance</th>
<th data-options="field:'remove',width:100,align:'right'">Remove</th>
</tr>
</thead>
</table>
</div>
的jquery / JS:
function loadData(cartIndex, event) {
alert($('.cart').index());
var $cart = $('.cart:eq(' + cartIndex + ')');
alert($cart.index()); //returns -1
$cart.find('.cartcontent').datagrid('loadData', data[cartIndex]);
}
为什么在这里返回-1
索引以及这个-1
是什么意思?
答案 0 :(得分:1)
-1
表示在数组
答案 1 :(得分:1)
答案 2 :(得分:0)
感谢大家帮助解决我无法想到的所有想法。
代码无法按预期工作的主要原因之一是由于在加载DOM之前调用了jquery / js脚本函数。这就是@Rory McCrossan首先评论的内容。我经历了搜索并降落在this article: Running Your Code at the Right Time。
@AmmarCSE从我最早的帖子中实际上问我“所以你的意思是你有一个附加到.cart的点击处理程序,你想要加载表格吗?”
我不知道在jquery / javascript和整个web事物的上下文中是什么。然而,这对我有很多帮助,或许我需要一个eventlistener
并进一步思考为什么我必须使用按钮点击事件以及pageload / domload如何不适合这种情况。
我把js代码执行到这里:
</body>
<script>
document.addEventListener("DOMContentLoaded", theDomHasLoaded, false);
alert("haha DOM content is loaded");
function theDomHasLoaded(e) {
addAll(0, e);
}
</script>
<script type="text/javascript" src="cart_Test.js"> </script>
</html>
来自C#背景,相当舒适的VS IDE,具有很好的调试功能,我实现了调试jQuery,js代码相当繁琐。
由于这是将迁移框架从jsfiddle放到asp.net的测试,我尝试使用pageload,domload事件。但是在实际实现中,我想在按钮单击事件上加载这些购物车html表。到那时整个DOM无论如何被加载。我今天在这里学到了很多,谢谢你们。