首先我很抱歉如果因为我一直在寻找很多小时而问这样的问题。请忍受我的问题。让我详细说明一下。我使用“value”属性动态地将选项添加到具有“value”属性的选择元素,如简单的10位电话号码,如7465768574 &文本作为“Name(PhoneNumber)”,当用户选择时,将其添加到无序列表中以显示Users selected选项。要删除该列表项,我提供了一个图像,点击时首先检查选择元素&中是否存在相应的选项,然后从无序列表中删除相同的列表项。&从select元素中删除相应的选项。现在,为了实现这一点,我正在检查'值'属性。问题是,如果该值属性是电话号码的大数字,我的逻辑失败,因为jQuery不能正确提取该值。如果它是一个非常大的数字,它将返回0,如果它的范围在60亿到70亿之间(逗号不存在),它将返回一些随机数。我不知道问题是什么。这与价值类型或某事有关吗?jquery属性值返回undefined,如果值很大,则返回0
<select multiple="multiple" id="select1">
<option class="selectedoptions" value="8234567890">Joker(8234567890)</option>
<option class="selectedoptions" value="2">Batman(2)</option>
<option class="selectedoptions" value="3">Superman(3)</option>
<option class="selectedoptions" value="4">Spiderman(4)</option>
<option class="selectedoptions" value="5">Ironman(5)</option>
<option class="selectedoptions" value="6">Thor(6)</option>
<option class="selectedoptions" value="7">Loki(7)</option>
</select>
我jQuery代码是
function removeSelected() {
var check = $(this).parent().attr('value');
var parent = $(this).parent();
$('#select2 option').each(function() {
if ($(this).attr('value') == check) {
$(this).remove().appendTo('#select1');
parent.remove();
return true;
}
return true;
});
return true;
}
当我调试代码使用Firebug,我可以看到,对于较大的数字,“检查”是0,&一些范围较小的超过80亿的返回随机数字。对于较小的数字,它的工作完美
另外,如果我尝试.VAL(),而不是.attr( '值')萤火显示错误提前家伙
TypeError: (c.value || "").replace is not a function
感谢。
编辑1:好的。看来我动态添加List Item的jQuery代码在列表Item中引入了随机数作为值。但问题仍然存在。我可以在创建列表项目时看到我的代码(通过萤火虫)添加适当的值,但生成的列表项目不反映它。
编辑2:对罗纳尔德先生的回应。对不起。需要一个上下文。我拥有的是以下内容。 2选择元素“select1”&“select2”&无序列表“selectedlist”。用户可以从“select1”中选择选项&将其移至“select2”。 &“select2”选项将/应该反映为“selectedlist”的列表项。我有一个函数removeSelected绑定到列表项中的图像。
<li class="selectedlistItems" value="8123456789">
Joker(8123456789)
<a class="search-choice-close" href="#"> </a>
</li>
现在在功能上,我试图通过其选项具有相同的值,这个列表项有“选择2” &检查的选项进行迭代。 “检查”是列表项的“值” &
$(this).attr('value')
是“选择2选项”值。 如果再匹配
$(this).remove().appendTo('#select1');
删除“选择2选项” &追加到“选择1” 其中作为
删除列表项,使无序列表总是反映“选择2 “元素。
我想这个上下文将足够理解我正在尝试做什么。我是新来的jquery &一般我发贴的问题,我只是找到答案,这是我的第一个问题。我非常感谢这种快速反应。
编辑3:检查此jsFiddle了解情况。 http://jsfiddle.net/ygaurav/vUgym/
我无法在OSX上的Firefox 12中复制此内容。 – Alnitak
['.attr()'和'.val()'可以很好地处理大值](http://jsfiddle.net/mdWfJ/1/)。 –