通过jQuery定位含指定文本的BDI对应的输入框并修改属性
修复后的Tampermonkey脚本
直接替换你原来的脚本代码即可解决问题:
$("bdi:contains('Truck No')").closest(".sapMLabel").parent().next().find('input').attr({ maxlength: "10", autocomplete: "OFF", list: "KASHIPUR", placeholder: "TRUCK NUMBER", autocapitalize: "ON" }).after('<datalist id="KASHIPUR"></datalist>');
关键修改说明:
- 元素定位更新:网站将原
label标签替换为bdi,因此选择器从label:contains('Truck No')改为bdi:contains('Truck No'),精准定位目标文本所在元素。 - DOM路径调整:
bdi嵌套在多层span内,通过.closest(".sapMLabel")向上找到最外层的标签容器,确保后续.parent().next()能正确跳转至输入框所在的div容器。 - 属性名标准化:将大写开头的
Autocomplete、Placeholder改为全小写的autocomplete、placeholder,符合HTML属性命名规范,避免兼容性问题。 - 标签规范修正:将大写的
Datalist改为小写<datalist>,ID值统一为小写KASHIPUR,保持代码一致性。
如果之后需要处理其他类似字段,只需要替换'Truck No'为对应的文本内容,其余逻辑可以直接复用。
内容的提问来源于stack exchange,提问作者Sachin Agarwal
相关产品推荐
相关产品推荐

