jQuery attr('id') 返回未定义



我有一个项目列表,当用户单击其中一个项目时,它会被分配一个名为"活动子项目"的类。此时只能选择一个项目,当用户单击另一个项目时,该项目将从"活动子"类中清除,然后将该类分配给新选择的项目。就像其他非多重列表一样。

这是所选元素的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>

另外,你有没有检查过你的身份证是唯一的?

最新更新