如何将querySelectorAll缩小到特定ID?

时间:2018-05-03 15:28:22

标签: javascript

我已经获得了以下MVC Razor代码,而我想要做的是将表中所有隐藏值的列表放入JS列表中。

我最终能够获得所有隐藏字段的列表,但它还包括我不需要的页面上的一些其他隐藏字段。我如何将其缩小到只有隐藏字段的ID =" RID"如果我能得到那些隐藏字段的值,那将会更有帮助。

以下是我写出表格的原因

flyTo

这是我用来获取所有隐藏字段列表的JS。

<tr>
    <td>@item.Base</td>
    <td>@item.Seat</td>
    <td>
        @item.Equipment
        @Html.HiddenFor(m => m.RID, new { Value = item.RID })
    </td>
</tr>

我从我发现的一个例子中尝试了这个,但它没有用。

let listItems = document.querySelectorAll('input[type="hidden"]');

1 个答案:

答案 0 :(得分:1)

选择器中ID之前的空格会破坏它,因为空白空间会导致它查找具有该ID的input后代。删除空格会检查元素本身的ID。

'input[type="hidden"]#RID' 

虽然ID应该是唯一的,但.querySelectorAll会搜索并返回具有相同ID的多个元素。尽管如此,将id变成class并选择那种方式会更好一些

要获取值,请使用Array.from,并将函数作为返回值的第二个参数传递。

let elems = document.querySelectorAll('input[type="hidden"]#RID');
let vals = Array.from(elems, el => el.value);