首页 > 解决方案 > 如果没有 id 且 class 不是唯一的,如何选择正确的元素?

问题描述

我有一个按钮列表。需要从列表中选择唯一的一个按钮(第三个)。因此,一旦我单击“新按钮”,它就必须从按钮 #3(第三按钮)执行操作。我的问题是<li>标签没有id,所以我下面的迭代是不成功的。

<div class="listButtons" id="anyId">
            <ul class="test">               
                <li>
                    <input value="Btn1" class="btn" name="Elem 1" title="Elem 1" type="button">
                </li>
                <li>
                    <input value="Btn2" class="btn" name="Elem 2" title="Elem 2" type"button">
                    <input value="Btn3" class="btn" name="Elem 3" title="Elem 3" type"button">
                    <input value="Btn4" class="btn" name="Elem 4" title="Elem 4" type"button">
                </li>
            </ul>
        <div>

我试过:1。

const newButton = $("#someId");     
const buttonsList = $("ul.test")
const thirdButton = buttonsList.find("input[name='Elem 3']")

newButton.click(() => {
   thirdButton.click()
})

2.

const newButton = $("#someId");     
const buttonsList = $("ul.test")
const thirdButton = buttonsList.find("input[name='Elem 3']")

$(function() {
   $("ul.test").find(".btn").each((index, elem) => {
          let elementValue = $(elem).attr("value")
          if(elementValue === "Btn3") {
          newButton.click(() => {
              $(elem).click()
             })
           }
         })

标签: javascriptjquery

解决方案


您还可以通过标签名称获取元素。我将从获取父元素的类或 id 开始,然后通过带有 for 循环的标签名称遍历子元素。

document.getElementById('parent').getElementsByTagName('childrensTags')

然后遍历那些直到你找到你想要的控制


推荐阅读