2013-09-24 113 views
1

我想在我的代码中得到检查listitem的索引,但无法找出方法。我的HTML代码如下 -获得检查listitem索引的最佳方法是什么?

  <h2 data-dojo-type="dojox/mobile/RoundRectCategory">Select Your Range :</h2> 
       <ul id="list" data-dojo-type="dojox/mobile/RoundRectList" data-dojo-props='select:"single"'> 
        <li data-dojo-type="dojox/mobile/ListItem" data-dojo-props='checked:true'>Within 1 KM</li> 
        <li data-dojo-type="dojox/mobile/ListItem" >Within 3 KM</li> 
        <li data-dojo-type="dojox/mobile/ListItem" >Within 5 KM</li> 
       </ul> 

我尝试使用dojo.query到达checked listitem,但它也不起作用。有人可以帮助我如何实现这一目标?

我的道场代码 -

dojo.query("#list>li:checked").forEach(function(node) { alert("in for loop"); }); 

我试着用下面这是给我的索引0对应于默认选中的列表项,但是当我选择的任何其他列表项,我仍然得到一个警报代码提醒默认选定的listitem。当我检查Google chrome的开发人员工具时,我发现data-dojo-props ='checked:true'对于默认的listitem,当我选择任何其他listitem时不会更改为false。这是listitem的正确行为吗?理想情况下,它应该改变为错误和检查属性为新的选定listitem应该改为'真',但这不会发生。任何人都可以解释这种行为,并告诉我获得选定listitem的索引的最佳方式?

dojo.query("#list>li[data-dojo-props='checked:true']").forEach(function(node,index) { alert("in for loop"+ index); }); 

注意 - 我与我的listItems中的工作已经很不错,但我仍然希望得到这个帮助,只是要注意的这个功能使用Dojo单选按钮解决。

回答

-1

通过使用JQuery。

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
</head> 
<body> 
<h2 data-dojo-type="dojox/mobile/RoundRectCategory" >Select Your Range :</h2> 
       <ul id="list" data-dojo-type="dojox/mobile/RoundRectList" data-dojo-props='select:"single"'> 
        <li data-dojo-type="dojox/mobile/ListItem" data-dojo-props='checked:true'>Within 1 KM</li> 
        <li data-dojo-type="dojox/mobile/ListItem" data-dojo-props='checked:true' >Within 3 KM</li> 
        <li data-dojo-type="dojox/mobile/ListItem" >Within 5 KM</li> 
       </ul> 
    <input type="button" value="get selected items" onclick="GetData()" /> 
<script type="text/javascript"> 
function GetData(){ 
var Value = ""; 

$("#list li").each(function(index,ele){ 
if($(ele).attr("data-dojo-props") === "checked:true") 
Value += ","+$(ele).html(); 
}); 
alert(Value); 
} 
</script> 

</body> 
+1

谢谢Sameer的帮助,但我想在dojo中实现它。 –

+0

这不在Dojo中,也不解释代码的作用。 – Bucket

相关问题