我使用jQuery通过DOM查找兄弟姐妹和父母等等但是当我将调试器放入我的js文件然后在chrome dev工具中加载时,我的jquery对象如{{1 }} 返回一个空数组。我在chrome上安装了jquery调试器扩展,但它并没有什么区别。
//反应器组件的功能渲染
var a = $("this").parent().siblings();
// js相同组件的功能
render: function ({
var contactsDisplayed = contacts.map(function (contact, index) {
return (
<tr key={index}>
<td><Link to={`/${contact.id}`}><div>{contact.firstName}</div></Link></td>
<td>{contact.lastName}</td>
<td>{contact.city}</td>
<td>{contact.phone}</td>
<td>{contact.email}</td>
<td><Link to={`/${contact.id}`}>Click To View Me</Link></td>
<td><input type="checkbox" value="readOnly" checked={that.state.deleteList.includes(contact.id)} onClick={that.addToDeleteList.bind(that, contact.id)}/></td>
</tr>
);
});
return(
<div className="contact-list">
<h1>All Contacts</h1>
<table className="contact-list-table">
<thead>
<tr>
<th>First Name<span className="glyphicon glyphicon-triangle-right" onClick={this.sortContacts.bind(this, "firstName")}></span></th>
<th>Last Name<span className="glyphicon glyphicon-triangle-right" onClick={this.sortContacts.bind(this, "lastName")}></span></th>
<th>City</th>
<th>Phone Number</th>
<th>Email<span className="glyphicon glyphicon-triangle-right" onClick={this.sortContacts.bind(this, "email")}></span></th>
<th>View Me</th>
<th>Delete</th>
</tr>
</thead>
<tbody>{contactsDisplayed}</tbody>
</table>
<button onClick={this.deleteEntries}>Delete All Checked Entries</button>
<button><Link to={`/new`}>Make New Entry</Link></button>
<input onChange={this.handleFilter} type="text" value={this.state.filterString}/>
</div>
});
答案 0 :(得分:1)
$("this").parent().siblings()
应为$(this).parent().siblings()
。
如果将字符串传递给$
,jQuery将选择与该CSS选择器匹配的所有元素。传入"this"
意味着jQuery会查找<this>
个标记,但它找不到任何标记。
$(this).parents()
表示jQuery会查找this
引用的元素的父级。