我要问的是如何使用 HTML5 的 querySelector/querySelectorAll 实现 jQuery 的 children() 的等效功能,即如何指定选择器模式中的当前元素。
例如:
<div id="foo">
<div class="bar" id="div1">
<div class="bar" id="div1.1">
</div>
</div>
<div class="bar" id="div2"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
有了document.getElementById('foo').querySelectAll('div.bar')这三个div旨意被选中。如果我只想得到 div1 和 div2,而不是 div1 的子 div1.1 怎么办?我如何写[[current node]] > div.bar像 css 选择器?
有人可以对此有所了解吗?
我有这个代码:
<a href="javascript:alert('something1')">Click</a>
<a href="javascript:prompt('something2')">Click</a>
<a href="javascript:alert('something3')">Click</a>
<a href="javascript:prompt('something4')">Click</a>
Run Code Online (Sandbox Code Playgroud)
为了获取单独的集合元素,我使用document.querySelectorAll("a[href^='javascript:alert(");和document.querySelectorAll("a[href^='javascript:prompt");。
现在,如何使用泛型来获取包含警报和提示的document.querySelectorAll()所有此类元素?<a href
我试过这个:
document.querySelectorAll("a[href^='javascript:prompt(,a[href^='javascript:alert(");
document.querySelectorAll("a[href^='javascript:prompt(","a[href^='javascript:alert(");
还有这么多。但它不起作用,出现"DOMException - not a valid selector"错误。
有什么帮助吗?
我正在站点菜单中制作背景选择器,当用户单击规范时,它将更改背景图像。图像(触发单选按钮)。我想使用 querySelectorAll(".selected") 来执行此操作,循环它并设置 addEventListener(click, ..) 获取索引(或 id, value)并使用 background_list 数组设置 backgroundImage 。
var background_list = ["/images/air-balloon.jpg","/images/mary-christmas.jpg","/images/mountain.jpg","/images/panorama.jpg","/images/plants.jpg","/images/sunset-mountain.jpg","/images/underwater-star.jpg","/images/vinyl-player.jpg"...]
Run Code Online (Sandbox Code Playgroud)
<div class="dropdown-background-container">
<div>
<input
type="radio"
id="image-1"
class="select"
value="1"
>
<label for="image-1">
<img src="/images/air-balloon-small.jpg" alt="Air Balloons">
</label>
</div>
<div>
<input
type="radio"
id="image-2"
class="select"
value="2"
>
<label for="image-2">
<img src="/images/mary-christmas-small.jpg" alt="Mary Christmas">
</label>
</div>
Run Code Online (Sandbox Code Playgroud)
例如我有几十张图像
document.querySelectorAll(".select").forEach( item => {
item.addEventListener('click', arrow => {
document.body.style.backgroundImage = `url("${background_list[index]}")`
})})
Run Code Online (Sandbox Code Playgroud)
有没有办法找到触发的索引(id或值)?您将如何为此实现代码,最简单的解决方案是什么?我是 JS 初学者
尝试在错误控制台中执行这2个代码块:
第一.输出NodeList.
var selector = "*[data-type=day][data-day='23']";
var a = document.querySelectorAll( selector );
alert( a );
Run Code Online (Sandbox Code Playgroud)
第二个.生成错误.
var selector = "*[data-type=day][data-day=23]";
var a = document.querySelectorAll( selector );
alert( a );
Run Code Online (Sandbox Code Playgroud)
为什么data-type=day语法不好而data-day=23不是?属性值是否应始终包装为data-type='day'?
这是例外,在第二种情况下引发:
[例外......"指定了无效或非法字符串"代码:"12"nsresult:"0x8053000c(SyntaxError)"]
为什么将el.querySelectorAll与以'>'开头的选择器一起使用是违法的?什么是简单的替代解决方案?
var el = document.createElement('div');
el.querySelector('> div');
Run Code Online (Sandbox Code Playgroud)
上面的代码将产生一个DOM Exception 12.解决方案必须避免使用jquery,它确实支持它而不会出错.可以提供Zepto解决方案,因为Zepto不支持.
当选择器不以'>'开头时,它是有效的:
el.querySelectorAll('div > div');
Run Code Online (Sandbox Code Playgroud) 早上好,我正在通过AJAX查找另一页的HTML:
var xml = new XMLHttpRequest()
xml.onreadystatechange = function () {
if (xml.readyState == 4) {
// here I need to work with data
// xml.responseText
}
}
xml.open("GET", url, false);
xml.send(null)
Run Code Online (Sandbox Code Playgroud)
如何将querySelectorAll()应用于另一个页面的html内容?
我必须使用casperJS将一个文件上传到客户服务器,现在在上传之前我需要模拟两个特定链接的点击,这些链接(简单的HTML锚点)没有名称/ id/class ...(真的丑陋的HTML代码)所以我有唯一的选择,通过它的文本内容来选择它.
如何使用querySelector或querySelectorAll方法找到它?
到目前为止,我可以提出以下(不成功的尝试):(
querySelector("a[text()='texttofind']");
querySelector("a[text='texttofind']");
querySelector("a[text=texttofind]");
Run Code Online (Sandbox Code Playgroud)
编辑后的所有建议
TITLE UPDATED 更具体地说明我的问题,似乎只与casperjs有关
平台 - Windows 7 - CasperJS版本1.1.0-beta3 - phantomjs版本1.9.7 - Python 2.7
所以,可能我太愚蠢了:(现在我发布一个完整的例子,遗憾地对我不起作用:(
HTML主索引
<html>
<head>
<title>TEST Main Page</title>
</head>
<frameset cols="100,100" >
<frame name="menu_a" src="menu_1.html">
<frame name="menu_b" src="menu_2.html">
</frameset>
</html>
Run Code Online (Sandbox Code Playgroud)
HTML menu_1.html
<html>
<head>
<title>TEST Menu 1</title>
</head>
<body style="background-color:red;">
<h3>Menu 1</h3>
<select onchange="javscript:alert('test')" id="test" size="1" name="systemID">
<option value="0">---</option>
<option selected="selected" value="1">TestMenu1 </option>
<option value="17">TestMenu2 </option>
</select>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
HTML menu_2.html
<html>
<head>
<title>TEST …Run Code Online (Sandbox Code Playgroud) 说我有这样的事情:
function one() {
var findthemall = document.querySelectorAll("*");
var i;
for (i = 0; i < findthemall.length; i++) {
//doin' some cool stuff
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我知道我可以querySelectorAll在它们之间使用逗号列出多个标签,但是有没有一种简单的方法可以为某些特定的类/标签设置例外?
喜欢: querySelectorAll("*, but not p and br tags")
我开始在一个项目中使用 Anglesharp,我不仅需要获取和下载 HTML,还需要获取和下载文档的图像。我知道在 Document 对象中有一个名为 Images 的属性,但似乎它没有得到所有这些,我在 YouTube 页面上做了一个测试,只得到了一个(重复了几次)。例如,我想获取当前视频的缩略图,这似乎在<meta>标签内。更准确地说,图像存储在这种标签中:
<meta content="https://i.ytimg.com/vi/hW-kDv1WcQM/hqdefault.jpg" property="og:image">
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否有一种方法可以选择页面内任何图像的所有节点/url,无论使用什么标签。我认为 QuerySelectorAll 在这种情况下不起作用,因为它只选择一种类型的节点。您可以尝试在 github 上找到的示例代码来验证这一点(我只是用 YouTube 更改了 url,也更改了选择器 :D):
// Setup the configuration to support document loading
var config = Configuration.Default.WithDefaultLoader();
// Load the names of all The Big Bang Theory episodes from Wikipedia
var address = "https://www.youtube.com/watch?v=hW-kDv1WcQM&feature=youtu.be";
// Asynchronously get the document in a new context using the configuration
var document = await BrowsingContext.New(config).OpenAsync(address);
// This CSS selector gets the desired content
var cellSelector = …Run Code Online (Sandbox Code Playgroud) 我正在使用SVG.js select()函数,该函数使用querySelector()函数.
目前,我使用的命令是:select("[id='1']")(1可以被其他一些数字替换)
我想做的是选择这个元素中的第一个内部元素.或者,我可以通过标签名称来选择它.
怎么做?
我试过select("[id='1']:first")但收到了错误.
顺便说一句,我选择它的原因是,显然querySelector有一个id为数字的问题.
selectors-api ×10
javascript ×9
html ×4
css ×3
ajax ×1
anglesharp ×1
c# ×1
casperjs ×1
css3 ×1
firefox ×1
image ×1
jquery ×1
svg ×1