【问题标题】:JavaScript - removing element by part of idJavaScript - 通过部分 id 删除元素
【发布时间】:2012-12-06 15:11:45
【问题描述】:

我需要删除其id 上的<div> 元素。我知道我可以使用诸如 -

之类的功能
function removeElement(div_id) {
   var div = document.getElementById(div_id);
   element.parentNode.removeChild(div);
}

但事实是id - 复合。它由一个不变的部分和在每个请求中变化的部分组成。这部分是一组随机数。

我知道,在这种情况下我需要使用正则表达式。我将不胜感激。

【问题讨论】:

标签: javascript html


【解决方案1】:

以下是使用纯 JavaScript 而不需要任何库的方法:

var divs = document.getElementsByTagName('div'),
    forEach = Array.prototype.forEach,
    regex = /^foo.*$/;

forEach.call(divs, function (d) {
    if (d.id !== undefined && regex.test(d.id)) {
        d.parentNode.removeChild(d);
    }
});​

在上面的示例中,所有 id 以foo 开头的 div 元素都将被删除。 这是一个例子:http://jsfiddle.net/UemQ5/

【讨论】:

  • 很好,我正要发布类似的东西,只是没有正则表达式。fiddle
  • 很高兴我的回答很有帮助。最好的问候!
【解决方案2】:

您不必使用正则表达式,您可以使用以下 3 个选择器之一,具体取决于您的需要:开头,结尾,或 包含。

开头为:$("[id^=item]")

结尾为:$("[id$=item]")

包含:$("[id*=item]")

或者,如果它们不适合您的需求,这里还有更多:http://api.jquery.com/category/selectors/

【讨论】:

    【解决方案3】:

    您可以使用 jquery 选择器正则表达式来解决它:)

    阅读: http://james.padolsey.com/javascript/regex-selector-for-jquery/

    【讨论】:

      【解决方案4】:

      1.jQuery 属性以 Selector 开头

      在 jQuery 上,“Attribute Starts With Selector”选择具有指定属性且值恰好以给定字符串开头的元素。

        jQuery('[attribute^="value"]')
      

      如果您想删除“id”以“ABC_”开头的 div,您的代码如下所示:

        $('div[id^="ABC_"]').remove();
      

      文档在这里 http://api.jquery.com/attribute-starts-with-selector/


      2. jQuery 属性以 Selector 结尾

      类似地,,"Attribute Ends With Selector" 选择具有指定属性且值恰好以给定字符串结尾的元素。

        jQuery('[attribute$="value"]')
      

      如果您想删除 'id' 以“_ABC”结尾的 div,您的代码如下所示:

        $('div[id$="_ABC"]').remove();
      

      文档在这里 http://api.jquery.com/attribute-ends-with-selector/


      3. jQuery 属性包含选择器

      最后,,"属性包含选择器" 选择具有指定属性且值包含给定子字符串的元素。

        jQuery('[attribute*="value"]')
      

      如果你想删除 'id' 包含 "ABC" 的 div,你的代码是这样的:

        $('div[id*="ABC"]').remove();
      

      文档在这里 http://api.jquery.com/attribute-contains-selector/

      【讨论】:

        【解决方案5】:

        JQuery 可以通过部分 ID 获取元素

        查看here了解更多信息。

        【讨论】:

          【解决方案6】:

          我认为查询选择器最适合您

          function myFunction()
          {
          
          var matchedElements = document.querySelectorAll("#myContainer div[id^='prefix']");
          
          var forEach = Array.prototype.forEach;
          
          forEach.call(matchedElements, function (el) { el.parentNode.removeChild(el); } );
          
          }
          

          http://jsfiddle.net/KLVP5/1/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-06-18
            • 1970-01-01
            • 2010-11-05
            • 1970-01-01
            • 1970-01-01
            • 2013-03-30
            • 1970-01-01
            相关资源
            最近更新 更多