我創建了這個小函數來查找特定type
的子項。類似jQuery的方法來查找/選擇React元素數組
我想能夠通過jQuery,[name="example"]
等屬性選擇孩子。有沒有什麼辦法從jQuery中去掉字符串選擇器的功能來創建一個對象映射來餵給lodash的_.find
?
我知道這是一個用於選擇/查找/過濾數組的虛擬解決方案,但我認爲它可能非常有用。我也知道,它不會找到深刻的孩子,它只會處理直接根源的孩子。
這是否存在於反應中?
function containsElement (element, children) {
var result = []
element = _.flatten([element])
if (React.isValidElement(children) && !_.isArray(children)) {
var contains = _.contains(element, children.type)
if (contains) return children
return false
} else if (!React.isValidElement(children) && !_.isArray(children)) {
return false
}
children.forEach(function (child) {
var isElm = React.isValidElement(child)
var contains = _.contains(element, child.type)
if (isElm && contains) {
result.push(child)
}
})
if (!result.length) return false
return result
}
如果您使用的是現代瀏覽器,jQuery中的大部分選擇器功能可以通過使用'document.querySelectorAll'的本地方式提供,該文件使用css選擇器引擎。你也可以使用[sizzle](http://sizzlejs.com/),這是jQuery的選擇器引擎的基礎。 –
但我想提供'this.props.children'中的HTML /元素。 – ThomasReggi
@KevinB +1提到Sizzle。 ThomasReggi會檢查出Sizzle,這可能是你的問題的答案。 – Wolf