您的位置:首页技术文章
文章详情页

javascript - jqeury用字符串拼接的ID选择器为什么不能使用?

【字号: 日期:2023-04-16 10:36:51浏览:63作者:猪猪

问题描述

for(var i = 0; i < checkeds.length; i++){ var check = ’user’+checkeds[i]+’--mycheckbox’; $('#'+check).parent(’td’).siblings(’.text-status’).removeClass(’text-green’); console.log($('#'+check).parent(’td’));}

这段代码中 checkeds 是一个id的数组,第三行是查找这个id元素的父级的同级元素中带有.text-status样式的元素并去掉text-green这个样式。可是无法生效,下面是控制台报出的查找的父级元素td的内容;

[prevObject: n.fn.init, context: document]context:documentlength:0prevObject:n.fn.init__proto__:Object(0)

这个是HTML的层级关系

<tr><td> <input name='user-contorl' data-color='yellow' type='checkbox' data-text=''></td><td>0001</td><td><img src='https://www.haobala.com/wenda/images/user.png' alt=''></td><td>耿直BOY</td><td>男</td><td>1990-02-01</td><td class='table-text'>曾经获得迪尼斯全球最能吃奖曾经获得迪尼斯全球最能吃奖</td><td>北京</td><td>2399</td><td>123</td><td>github</td><td>******</td><td>18511009922</td><td>1991-02-01</td><td class='text-blue'>23</td><td class='text-blue'>23</td><td class='text-blue'>23</td><td class='text-green'>正常</td><td><a href='https://www.haobala.com/wenda/4717.html' class='user-edit'><i class='fa fa-edit'></i></a></td> </tr>

问题解答

回答1:

单开一个最简单的demo试一下就知道了、是可以拼接的、

只能说你的页面上代码哪里出了问题

看html中id为user1-mycheckbox

看你的拼接却是’user’+checkeds[i]+’--mycheckbox’;

一个是短横线、一个是双短横线、还是代码贴错了?

回答2:

题主可以判断一下是否选择器是正常的

var check = ’user’+checkeds[i]+’--mycheckbox’;

// check = user1--mycheckbox

<input .....回答3:

如果实例是你发的html的话,1.页面中并没有td.text-status2.check拼接的时候多了一个短横线 //html中 var check = ’user’+checkeds[i]+’--mycheckbox’; // check= user1--mycheckbox回答4:

可以使用 不能使用的话那也只能是你页面上不存在这个ID

回答5:

题主可以把测试代码发一下吗,这种情况一般就是你层级没找对

回答6:

check 输出看下是不是你想要的结果,如果是,再检查这个id在页面上是不是存在的,带有这个id的元素一开始也是要存在页面上的,不能是未来元素!未来元素要用事件委托。

标签: JavaScript
相关文章: