我有一个项目列表,当用户单击其中一个项目时,它会被分配一个名为"活动子项目"的类。此时只能选择一个项目,当用户单击另一个项目时,该项目将从"活动子"类中清除,然后将该类分配给新选择的项目。就像其他非多重列表一样。
这是所选元素的HTML:
<div id="5" class="new-child-item new-child-item-active active-child"> Software </div>
当我想将所选项目的"id"提交给php脚本以进一步处理它时,jquery不会检索元素的id值,而是说它是undefined
。我获取所选项目的id
属性的方法如下:
$('.active-child').attr('id');
我也测试过,但仍然返回undefined
:
$('.active-child:first-child').attr('id');
奇怪的是,我首先检查用户是否选择了任何东西,如果是,然后执行ajax,此时jquery返回1
,意味着用户选择了一个项目。这是一个代码块,它检查以查看选择,然后通过ajax发送:
if($('.active-child').length > 0)
{
$('.new-item-cats-list-holder').empty();
$('.new-item-cats-list-holder').hide()
$('.big-loader').show();
console.log("This is the id: " + $('.new-child-item-active:first-child').attr('id'));
$.ajax({
url : base_path('ajax/set_credentials/step_2'),
type: "POST",
data : ({'set_sess':true, 'category' : $('.active-child').attr('id')}),
success : function(msg){
if(msg!=0)
{
//window.location.href = base_path('panel/add/step/ads/3');
}
},
});
}// end of length if
ID
检索之前的empty()和hide()函数会破坏和DOM,并且不允许其存在,然后提取其id
值。
我有一个线索,你正在使用数值作为ID,或者至少有一个以数字开头的ID。我的怀疑来自于这样一个事实,即您的控制台日志返回1,并且您在问题中指定您正在记录活动儿童的ID。
这是无效的——类和ID必须以字母表、下划线或短划线开头,然后后跟任何字母数字、下划线或长划线字符及其组合。
请参阅此处:哪些字符在CSS类名/选择器中有效?和http://www.w3.org/TR/CSS21/syndata.html#characters
除非您使用HTML5,但您需要正确声明doctype:<!DOCTYPE html>
另外,你有没有检查过你的身份证是唯一的?