在这个xml中,我想匹配,包含'match'的元素(random2元素)
<root>
<random1>
<random2>match</random2>
<random3>nomatch</random3>
</random1>
</root>
Run Code Online (Sandbox Code Playgroud)
好的,到目前为止我有:
//[re:test(.,'match','i')] (with re in the proper namespace)
Run Code Online (Sandbox Code Playgroud)
这会返回random2,random1和root ...我想只获得"random2"
有任何想法吗?
我能够使用:contains选择器使这部分工作,但我的问题是,如果一个元素包含一个元素,其中包含仍然返回的文本.例如:
$('div:contains("test")')
Run Code Online (Sandbox Code Playgroud)
将选择以下两个div:
<div>something else
<div>test</div>
</div>
Run Code Online (Sandbox Code Playgroud)
小提琴:http://jsfiddle.net/TT7dR/
如何只选择"直接"包含文本的div?这意味着在上面的示例中仅选择子div.
更新:
只是为了澄清,如果我在搜索文本"别的"而不是"测试",那么我只想找到父div.
我正在构建Chrome扩展程序.我试图让我的应用程序与扩展程序中的每个页面以及用户在浏览器中查看的页面进行通信.我需要从扩展程序访问dom然后更新它.
manifest.json
popup.html
popup.js
background.js
content.js
Run Code Online (Sandbox Code Playgroud)
以及用户正在查看的当前页面.
我的目标是在页面加载时修改dom并在用户看到之前向用户显示新版本的页面.在popup.js用户中允许在弹出窗口中输入关键字.关键字被保存到localStorage他们查看网页时,通过使关键字的父div隐藏(如果在他们正在查看的任何页面上找到关键字),将关键字从其视图中删除.
我需要帮助让每个页面进行通信,我认为我在popup.js中隐藏父div的方式不起作用.我对如何从前面对dom执行操作感到困惑.
将dom发送到background.js在页面上查找关键字并将其父div更改为hidden.将dom推回查看页面.
我认为这句话是说如果我匹配任何网址然后运行我的应用程序,但我不确定.
"matches": ["*://*/*"],
Run Code Online (Sandbox Code Playgroud)
我的manifest.json
{
"name": "Wuno Zensoring",
"version" : "1.0",
"permissions": [
"activeTab",
"tabs",
"storage"
],
"description": "This extension will search the document file for keywords and hide their parent div.",
"icons": {
"19": "icon19.png",
"38": "icon38.png",
"48": "icon48.png",
"128": "icon128.png"
},
"background": {
"persistent": false,
"scripts": ["jquery-1.11.3.min.js","background.js"]
},
"content_scripts": [{
"matches": ["*://*/*"],
"js": ["content.js"],
"run_at": "document_end",
"all_frames": true
}],
"web_accessible_resources": [
"popup.js", "content.js"
], …Run Code Online (Sandbox Code Playgroud)