jQuery .selectable(), Always 返回相同的 ID
jQuery .selectable(), Always returns the same ID?
下面我有这个小列表:
<ul id="selectable">
<li id='0'></li>
<li id='1'></li>
<li id='2'></li>
<li id='3'></li>
<li id='4'></li>
</ul>
<span>You've selected:</span>
<span id="select-result">none</span>.
结合jQuery,它应该得到所选元素的id
:
<script>
$(function() {
$( "#selectable" ).selectable({
stop: function() {
var result = $( "#select-result" ).empty();
$( ".ui-selected", this ).each(function() {
var index = $( "#selectable li" ).attr( 'id' );
result.append( index );
});
}
});
});
</script>
每次我单击一个元素时,它都会显示:0
为什么?当我第二次单击列表元素时,它应该显示:1
等,我做错了什么?
为什么这么难?为什么不像这样:
$('#selectable li').on('click', function(){
// set the value of the clicked li to the result div
$('#select-result').text( $(this).html() );
// And optional:
// set all true's to false:
$('li[data-selected="true"]').attr('data-selected', 'false');
// Set the clicked item to true
$(this).attr('data-selected', 'true');
});
可选部分是非常可选的,您的问题不需要它:)
它当前正在收集$('#selectable li')
中的第一个节点,因为它收集了许多节点,请将其调整为:
$('#selectable li.ui-selected');
小提琴
- 注意,我已将 ID 调整为letter + number
W3 规范
<ul id="selectable">
<li id='i0'>Zero</li>
<li id='i1'>One</li>
<li id='i2'>Two</li>
<li id='i3'>Three</li>
<li id='i4'>Four</li>
</ul>
<span>You've selected:</span> <span id="select-result">none</span>
<script>
$("#selectable").selectable({
stop: function () {
var result = $("#select-result").empty();
$(".ui-selected", this).each(function () {
var index = $("#selectable li.ui-selected").attr('id');
result.append(index);
});
}
});
</script>
我已经修改了MackieeE的解决方案,因为它错过了选择多个项目的能力。使用以下代码,这有效。
同样在小提琴上:http://jsfiddle.net/CVks3/2/
$("#selectable").selectable({
stop: function () {
var result = $("#select-result").empty();
$(".ui-selected", this).each(function () {
result.append(this.id);
});
}
});
这可能更容易
$('#selectable li').each(function(i) {
$(this).on('click', function() {
$(this).attr('data-selected', 'true').siblings('li[data-selected="true"]').attr('data-selected', 'false');
$('#select-result').text(i);
});
});
然后,您根本不需要id,您可以按$('#selectable li[data-selected="true"]')
或$('#selectable li').eq($('#select-result').text())
定位所选的
取消选择呢?
只是要指出房间里的大象并说这开始没有选择任何东西,并且可能需要能够恢复。
像这样:
$('#selectable li').each(function(i) {//get eq
$(this).on('click', function() {//on click
if ($(this).attr('data-selected')==='true') {//if currently selected
$(this).attr('data-selected', 'false');//unselect
$('#select-result').text('none');//no results
} else {//if not currently selected
$(this).attr('data-selected', 'true')//mark selected
.siblings('li[data-selected="true"]').attr('data-selected', 'false');//unselect siblings
$('#select-result').text(i);//change results
}
});
});
做了一个小提琴:http://jsfiddle.net/filever10/vm9C2/
相关文章:
- PHP会话ID变量与AJAX一起返回
- 包含插入的Meteor方法没有返回记录ID作为结果
- 为什么数据列表选项的id返回空值
- 使用MeteorJS堆栈,如何使用对象的id返回该对象的属性
- 将域类id返回到由单选按钮选择的控制器
- 按用户 ID 返回 Soundcloud 曲目列表
- 按钮 ID 返回空白
- 如何使用javascript和jquery修改通用css,并将结果作为新id返回
- Get Element by ID 返回使用 JavaScript 动态添加的元素的 null
- layer.find获胜't通过id返回kinetijs对象,尽管它存在
- FB ID返回为未定义
- 获取提交数据的id返回NaN
- 如何从id返回刚好的数字,就像"后46"
- getElementsByClassName/Id返回的数组中元素的顺序是否一致?
- DOM查找ID返回未定义
- $(this).attr('id')返回未定义,尽管id已定义
- 仅在IE上,表单DOM id返回“”;为空或不是对象“;问题
- 元素属性 ID 返回未定义
- getelementbyid (id)返回一个包含所有未定义变量的对象
- EditorInstance.document.getById(“某些id”)返回null