首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何接受getElementById (stack_ * _overflow)之间的字符?

如何接受getElementById (stack_ * _overflow)之间的字符?
EN

Stack Overflow用户
提问于 2013-08-26 17:55:20
回答 4查看 1.1K关注 0票数 6

我有一个页面,它每次都会更改输入字段的ID。例如,如果我现在访问页面,ID可以是"stack_15_overflow",下一次可以是"stack_293_overflow"

我希望对getElementById使用通配符值,例如"stack_ * _overflow" ( *匹配任何内容),以获取与任何输入字段相关的值,不管输入字段的开头和结尾是什么文本。

代码:

代码语言:javascript
复制
function HelloId(string){
    var name=string
    document.getElementById('stack_*_overflow').value=name;
}
EN

回答 4

Stack Overflow用户

发布于 2013-08-26 17:59:23

代码语言:javascript
复制
var elements = document.querySelectorAll('[id^="stack_"][id$="_overflow"]');
票数 5
EN

Stack Overflow用户

发布于 2013-08-26 17:59:36

使用jQuery的attribute starts withattribute ends with选择器:

代码语言:javascript
复制
$("[id^='stack'][id$=overflow]");

注意,这些选择器很昂贵,指定元素的类型可以提高性能:

代码语言:javascript
复制
$('element').filter("[id^='stack'][id$=overflow]");
票数 5
EN

Stack Overflow用户

发布于 2013-08-26 18:04:03

您不能通过使用getElementById来实现这一点。一个更好的解决方案是querySelectorquerySelectorAll,在那里您可以完全支持CSS选择器。

参考于MDN

您将需要以下两个属性选择器:

获取用特定字符串启动的元素

代码语言:javascript
复制
document.querySelector('[id^="stack_"]');

获取包含特定字符串的的元素

代码语言:javascript
复制
document.querySelector('[id*="stack_"]');

获取以特定字符串结束的元素

代码语言:javascript
复制
document.querySelector('[id$="_overflow"]');

通过将结束和启动选择器组合在一起,您可以获得以下结果并能够达到您想要的结果:

代码语言:javascript
复制
document.querySelector('[id^="stack_"][id$="_overflow"]');

编码愉快!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18450060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档