选择器是与文档树中的元素匹配的模式。在CSS规则中,它们用于为与模式匹配的元素定义样式。
为什么使用 document.querySelectorAll() 选择复选框不起作用?
我有以下代码,主要来自How can I select all checkboxes from a form using pure JavaScript,但它不起作用。 测试.html </desc> <question vote="3"> <p>我有以下代码,主要来自<a href="https://stackoverflow.com/questions/7791507/how-can-i-select-all-checkboxes-from-a-form-using-pure-javascript-without-js-fr">如何使用纯 JavaScript 从表单中选择所有复选框</a>,但它不起作用。</p> <p><strong>测试.html</strong></p> <pre><code><html> <head> <script> function select(){ var inputs = document.querySelectorAll("input[type='checkbox']"); for(var i = 0; i < inputs.length; i++) { inputs[i].checked = true; } } </script> </head> <body> <form id="myId" name="myForm"> <input type="checkbox" value="1"/> 1 <input type="checkbox" value="2"/> 2 <input type="checkbox" value="3"/> 3 <input type="button" onclick="select()" value="Select all"/> </form> </body> </html> </code></pre> <p>单击按钮不会执行任何操作。 我一定在这里做错了什么,但我就是挑不出它来。</p> </question> <answer tick="false" vote="5"> <p>试试这个...</p> <pre><code><html> <head> <script> function test(){ var inputs = document.querySelectorAll("input[type='checkbox']"); for(var i = 0; i < inputs.length; i++) { inputs[i].checked = true; } } </script> </head> <body> <form id="myId" name="myForm"> <input type="checkbox" value="1"/> 1 <input type="checkbox" value="2"/> 2 <input type="checkbox" value="3"/> 3 <input type="button" onclick="test()" value="Select all"/> </form> </body> </html> </code></pre> </answer> <answer tick="true" vote="3"> <p>尝试使用其他函数名称<pre><code>select</code></pre>,其余的代码就可以了。</p> </answer> <answer tick="false" vote="1"> <p><pre><code>select</code></pre> 是 HTMLInputElement 上定义的本机方法,用于聚焦选定的输入元素。 <br/> <a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select" rel="nofollow">选择</a> <br/></p> <p>解决方案1:更改函数的名称。 <br/> 解决方案2:尝试用 <pre><code>onclick="window.select()"</code></pre> 代替 <pre><code>onclick="select()"</code></pre></p> </answer> <answer tick="false" vote="0"> <p>我建议你使用<strong>Jquery</strong>并这样做:</p> <p><strong><a href="http://jsfiddle.net/ywv8x28x/" rel="nofollow">现场演示</a></strong></p> <p><strong>HTML</strong></p> <pre><code><ul class="chk-container"> <li><button id="selecctall">select all</button> <li><input class="checkbox1" type="checkbox" name="check[]" value="item1"> This is Item 1</li> <li><input class="checkbox1" type="checkbox" name="check[]" value="item2"> This is Item 2</li> <li><input class="checkbox1" type="checkbox" name="check[]" value="item3"> This is Item 3</li> <li><input class="checkbox1" type="checkbox" name="check[]" value="item4"> This is Item 4</li> <li><input class="checkbox1" type="checkbox" name="check[]" value="item5"> This is Item 5</li> <li><input class="checkbox1" type="checkbox" name="check[]" value="item6"> This is Item 6</li> <li><input class="checkbox2" type="checkbox" name="check[]" value="item6"> Do not select this</li> </ul> </code></pre> <p><strong>Jquery</strong></p> <pre><code>$(document).ready(function() { $('#selecctall').mouseup(function(event) { //on click if(document.activeElement.tagName ==='BUTTON') { // check select status $('.checkbox1').each(function() { //loop through each checkbox this.checked = true; //select all checkboxes with class "checkbox1" }); }else{ $('.checkbox1').each(function() { //loop through each checkbox this.checked = false; //deselect all checkboxes with class "checkbox1" }); } }); }); </code></pre> <p>更简单高效的方式</p> </answer> </body></html>
我正在用Python为Booking.com这样的网站编写selenium的测试选择器。例如,我必须自动从按钮列表中选择一个按钮。按钮的格式如下...
我刚刚开始学习编码。 我用 HTML 制作了多页简历,现在我开始添加样式。 我原以为所有页面都会发生更改,但只有索引页面显示
如何编写一个 CSS 规则来选择所有不在 .container 内的 div.box? 以下代码片段不起作用,因为 div.container 内有一个没有 .container 的 div。 迪...
我正在学习自动化,这是我的第二个脚本..我想做一些非常非常简单的事情,请访问 https://demoqa.com/ 单击“小部件”,然后单击“滑块”,但我尝试了所有元素,但不是
我想知道使用属性选择器而不是类选择器是否存在性能问题。 div.测试{} div[测试] {} 附: : 我只对 CSS 性能感兴趣,对 JS 不感兴趣。
我正在为网站构建器编写一些代码,这给我带来了问题。我们使用 CSS 变量来定义全局样式,包括桌面和移动布局选项,例如: :根 { --教派...
我们如何将图片集成为表格的背景图像.. 这里有一些数据...... 我们如何将图片集成为表格的背景图像.. <table> <tr> <td><textarea>Some data here.....</textarea> </td> <td></td> </tr> <tr> <td><textarea>Some data here.....</textarea> </td> <td></td> </tr> 谢谢.. 您是否想问如何为表格分配背景图像?就像任何其他 HTML 元素一样。 在 CSS 中: table.mytable { background-image: url(your_image.gif); } 在 HTML 中: <table class="mytable"> 参考: w3schools 的背景图像属性 请参阅该页面了解其他参数 background-repeat 和 background-position。 table { background-image: url(/images/foo.png); } 遵循佩卡的例子。 table.mytable td { background-image: url(your_image.gif); } 可以让你在每个单元格中放置背景图像 如果您将类属性应用于 <td class="myClass">,则可以向各个单元格添加自定义背景。 内联CSS,例如 - style="background-image: url(your_image.gif);" - 不太好。 在我看来,将 bg 放到表中的最佳方法是; html:表> tr > td.wide css : 表 tr td.wide{背景:#ffffff url(/images/bg.png) 重复;}
使用cssSelector清除Chrome浏览器的浏览数据时如何与#shadow-root(打开)中的元素进行交互
我一直在关注如何使用 selenium 自动执行影子 DOM 元素?使用#shadow-root(开放)元素。 在找到清除数据按钮的过程中...
我的 HTML 文档中有一堆表格。一些单元格内部具有特定类别的跨度(.signs);有些则不然。我需要专门对包含的内容应用边框...
如何通过 Selenium 和 Python 点击 Instagram 中的“现在不”按钮
我正在尝试使用我当前正在编码的“Instagram 机器人”登录 Instagram。我已经通过登录屏幕,通过“获取应用程序”屏幕以及它想要如何打开通知......
如何使用 Playwright 通过 Xpath/CSS 选择器定位元素
如何使用 Playwright TS/JS 通过 Xpath/CSS 选择器定位元素? Playwright 中有很多定位器(与 Selenium 相比) 例如 getByRole 和 getByText。 有没有像
我尝试使用 Selectolax 选择一些没有类属性的 p 标签,但没有成功。 这是我的代码: 从 selectolax.parser 导入 HTMLParser 树 = HTMLParser( ''' 我尝试使用 Selectolax 选择一些没有类属性的 p 标签,但没有成功。 这是我的代码: from selectolax.parser import HTMLParser tree = HTMLParser( ''' <p class="card_street"> <span class="card_street">123 My Rd. </span> <span class="card_street">Suite 100</span> <span> Anywhere</span> <span>, TX</span> <span> 12345</span> </p> ''' ) tree.css('p[class="card_street"] span:not([class]):nth-child(1)') 给出: [] 但是,tree.css('p[class="card_street"] span:not([class])')选择的是没有class属性的三个span标签: for node in tree.css('p[class="card_street"] > span:not([class])'): print(node.text()) 给出: Anawhere , TX 12345 有人可以告诉我选择没有类属性的第一个、第二个和第三个跨度标签的正确方法吗? 您的代码的返回是正确的,因为您选择了不包含类的元素。不管怎样,我认为使用 Lexbor 代替 Modest 后端来进行 selectolax 的适当改进和更多的可维护性或回购。 from selectolax.lexbor import LexborHTMLParser parser = LexborHTMLParser(content) tree = parser.css('p[class="card_street"] span:not([class])') result = [element.text(strip=True) for element in tree] ['任何地方', ', TX', '12345']
考虑以下 HTML 和 CSS 代码: .main :is(p 节) { 背景:深青色; } 你好 我预计该段落...
我有一个这样的文档: ... 一些元素遵循身体的方向 <... 我有一个这样的文件: <html> ... <body style="direction: rtl;"> <div class="col-ml-auto"> some elements following body's direction </div> ... <div class="col-ml-auto" style="direction: ltr;"> some elements forced to be ltr </div> </body> </html> 我可以使用以下语法选择父方向元素: .col-ml-auto{margin-left:auto} [style*="rtl"] .col-ml-auto{margin-left:unset;margin-right:auto} 它选择普通元素,但内联方向没有效果。 我可以使用以下语法选择内联定向元素: .col-ml-auto{margin-left:auto} .col-ml-auto[style*="rtl"]{margin-left:unset;margin-right:auto} 它选择内联定向元素,但不选择父定向元素,那么如何处理两者? 你不会有一个基于CSS可以设置的选择器,这会创建一个循环。例如,如果我们有一个假设的 :direction() 伪选择器,它对 CSS 设置的方向敏感,那么像 :direction(ltr) { direction: rtl; } 这样的规则会阻止引擎。 但是,即使你所有的方向规则都是在内联 style="" 属性中设置的,并且即使你确定你将 never 拥有类似 style="direction:rtl; direction: ltr;" 的东西,我怀疑你会找到一个能够区分最接近父级匹配 A 的元素以及最接近 B 的元素。 因此,最好的选择可能是在这里利用继承,例如将要设置的所有样式声明为--css-variables。然后,(仍然假设所有方向都是通过 style="" 属性设置的),你可以做类似的事情 [style*=direction][style*=rtl] { --rule-1: rtl-value } [style*=direction][style*=ltr] { --rule-1: ltr-value; } [style*=direction][style*=rtl] { --rule-1: green } [style*=direction][style*=ltr] { --rule-1: red; } * { border: 1px solid var(--rule-1); } <body style="direction: rtl;"> <div class="col-ml-auto"> some elements following body's direction </div> ... <div class="col-ml-auto" style="direction: ltr;"> some elements forced to be ltr </div> </body>
我想使用“:is()”伪 cl 来设置特定的“直接位于主体内部的部分”和“直接位于主体内部的 div 内部的部分”的样式...
我需要设计4个这样的按钮。考虑侧面和按钮侧面是实心的。 该设计类似于披萨切割: 。容器 { 边界半径:50%; 溢出:隐藏; } 。孩子 { ...
请帮我设计这个列表的样式,我需要为每个列表项设置不同的背景图像,但类是相同的。 菜单1 请帮我设计这个列表的样式,我需要为每个列表项设置不同的背景图像,但类是相同的。 <ul> <li class="sameforall">menu 1</li> <li class="sameforall">menu 2</li> <li class="sameforall">menu 3</li> <li class="sameforall">menu 4</li> </ul> 我知道这个,但它只适用于第一个项目:( ul:first-child li{ /*my css*/ } 为什么要给所有的李子上同一个班级? 给 ul 一个类来设置所包含的 li 的样式,然后给 li 自己的类,如下所示: <ul class="sameforall"> <li class="one">menu 1</li> <li class="two">menu 2</li> <li class="three">menu 3</li> <li class="four">menu 4</li> </ul> .sameforall {color: red;} .sameforall .one {background-color: blue;} .sameforall .two {background-color: green;} .sameforall .three {background-color: pink;} .sameforall .four {background-color: purple;} 您无法访问 HTML,CSS3 支持 :nth-child() psuedo 选择 - http://css-tricks.com/how-nth-child-works/ <ul> <li class="sameforall">menu 1</li> <li class="sameforall">menu 2</li> <li class="sameforall">menu 3</li> <li class="sameforall">menu 4</li> </ul> .sameforall:nth-child(1) { background-color: blue; } .sameforall:nth-child(2) { background-color: green; } .sameforall:nth-child(3) { background-color: pink; } .sameforall:nth-child(4) { background-color: purple; } 注意,这在大多数旧浏览器中不起作用。 我会避免使用first-child,因为它没有得到完全支持,而且它在哪里,可能仍然有问题。关于引用其他元素或子元素,最好的办法是给它们一个不同的 id 并使用它来设计它们的样式。像这样: <ul class="sameforall"> <li id='first' >menu 1</li> <li id='second'>menu 2</li> <li id='third' >menu 3</li> <li id='forth' >menu 4</li> </ul> 然后您可以像这样引用 css 文件中的这些元素: #first{/*Your css*/} 如果您想查看 nth-child 的支持浏览器列表,请访问 此页面,其中包含一个表格,其中包含一些最流行的浏览器版本以及它们可能遇到的支持问题。 你需要 :nth-child() 顺便说一句,它应该是 ul li:fist-child 由于您无法更改标记,并且不支持通过 CSS 进行子选择,因此唯一的方法就是使用 JavaScript 来完成此操作。 <ul> <li class="sameforall">menu 1</li> <li class="sameforall">menu 2</li> <li class="sameforall">menu 3</li> <li class="sameforall">menu 4</li> </ul> <script type="text/javascript"> var listItems = document.getElementsByTagName("ul")[0].getElementsByTagName("li"); var numChildren = listItems.length; for(var i = 0; i < numChildren; i++) { var item = listItems[i]; // -> do whatever you want with each item. switch(i) { case 0: item.style.backgroundImage = 'url(item-1.gif);'; break; case 1: item.style.backgroundImage = 'url(item-2.gif);'; break; case 2: item.style.backgroundImage = 'url(item-3.gif);'; break; } } </script> 你需要使用第n个孩子的方法。 这里的内容很详细。希望这对您有帮助。 http://www.w3.org/TR/css3-selectors/ 我有同样的问题,但列表是从表单输入生成的。我该如何处理无限数量的列表条目?