【问题标题】:Find part of an ID using getElementsByTagName('*') / Wildcard使用 getElementsByTagName('*') / 通配符查找 ID 的一部分
【发布时间】:2015-07-07 09:05:52
【问题描述】:

我仍在尝试使用 JavaScript,但遇到了问题:

我有一个简单的 html 站点供练习,在这个站点中有一个 <p id="main_paragraph_two">... und Viel Erfolg!</p> 还有:<p id="sub_paragraph_two">... und Viel Erfolg!</p>

任务是:将 Text ...und Viel Erfolg 更改为 ...und vielen Dank!

我的同事告诉我使用 getElementsByTagName 而不是使用通配符 ('*')。

现在我的问题是:如何将两个 p 标签更改为上面显示的文本? *请注意!只有javascript!也没有使用 querySelectorAll(我知道它是这样工作的^^)。

这是我目前制作的 JS:

function textchange()
        {
            var change = document.getElementsByTagName('*');
            for (var i = 0; i < change.length; i++)
            {
                if (document.getgetElementsByName('paragraph_two'))
                {
                    change[i].innerHTML = '...und Vielen Dank!';
                }
            }
        }

谢谢!

【问题讨论】:

  • 为什么不想使用 querySelectorAll?
  • 如果你知道它们是 P 元素,为什么不getElementsByTagName('p') 来减少你正在迭代的集合的大小?
  • 骂你的同事! ^
  • __ 天哪,我爱你!这是完美的:)

标签: javascript wildcard innerhtml getelementsbytagname


【解决方案1】:

使用getElementsByTagName 比较慢。为什么不将段落的 ID 添加到数组中,循环遍历数组,然后更新内容。

例如:

function textChange( elems, replace )
{
    for( var i = 0; i < elems.length; i++ )
    {
        document.getElementById( elems[i] ).innerHTML = replace;
    }
}

现在,您可以按如下方式调用该函数,其中elems 是一个ID 数组,replace 是用于替换的字符串:

textChange( ['main_paragraph_two', 'sub_paragraph_two'], '...und Vielen Dank!' );

jsFiddle Demo

【讨论】:

  • 感谢您的帮助,但使用通配符 ('p') 有效,但我不应该使用它。我必须找出如何使用 jQuery 或 Queryselector 更改 ID 以 _paragraph_two 结尾的文本,仅使用通配符 *
猜你喜欢
  • 1970-01-01
  • 2011-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多