动态生成ID时的getElementByID

时间:2018-12-04 15:31:20

标签: javascript

我正在尝试使用Chrome小书签来从网站上获取数据以进行工作。我无权修改该网站的代码。

这是我尝试获取的字段的示例:

<div style="width:100%; height:100%;" bindonce="" class="ng-scope">
    <de-field-label>
        <div class="pull-left ng-scope" style="width: 100%">
            <label class="pull-left">Last Name</label>
        </div>
    </de-field-label>

    <input class="tt-input ng-scope"
           bo-class="{'tt-agency-required': field.agencyValidation === 1}" 
           de-cascade=""
           ng-disabled="true"
           de-input-mask=""
           de-text-box=""
           sectionid="0b340920-8989-ce72-7bb4-08d51598a6d9-0" 
           id="Victims_0b340920-8989-ce72-7bb4-08d51598a6d9_0_lastName"
           disabled="disabled">
</div>

该ID是动态生成的

3 个答案:

答案 0 :(得分:4)

您可以使用属性选择器来检查ID是否以某些东西开头

document.querySelector('[id^=Victims_]')

或以某物结尾

document.querySelector('[id$=lastName]')

答案 1 :(得分:0)

由于您不知道ID是什么,因此getElementById对您毫无用处。

找到有关唯一标识元素的元素的其他信息,例如类或data-*属性,或者它在DOM中与您确实知道其ID的元素的关系。简而言之,您可以用selector表达的任何内容。

然后将其用作querySelector的参数。

答案 2 :(得分:0)

如果我没有误解,ID总是不同的,所以您必须使用其他东西来识别输入内容,然后去阅读ID 我将尝试:

var input = document.getElementsByClassName("tt-input").item(0);
var id = input.id