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
:
document
length
:
0
prevObject
:
n.fn.init
__proto__
:
Object(0)
這個是HTML的層級關係
<tr>
<td>
<input id="user1-mycheckbox" name="user-contorl" data-color="yellow" type="checkbox" class="checkbix" data-text="">
</td>
<td>0001</td>
<td><img src="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="" class="user-edit"><i class="fa fa-edit"></i></a></td>
</tr>
單開一個最簡單的demo試一下就知道了、是可以拼接的、
只能說你的頁面上程式碼哪裡出了問題
看html中id為user1-mycheckbox
看你的拼接卻是'user'+checkeds[i]+'--mycheckbox';
一個是短橫線、一個是雙短橫線、還是程式碼貼錯了?
題主可以判斷是否選擇器是正常的
// check = user1--mycheckbox
雷雷
可以使用 不能使用的話那也只能是你頁面上不存在這個ID
題主可以把測驗程式碼寄一下嗎,這種情況一般就是你層級沒找對
check 輸出看下是不是你想要的結果,如果是,再檢查這個id在頁面上是不是存在的,帶有這個id的元素一開始也是要存在頁面上的,不能是未來元素!未來元素要用事件委託。