Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 名称id或类中的正则表达式?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 名称id或类中的正则表达式?

Javascript 名称id或类中的正则表达式?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,例如,我有: <span id="name1">name1</span> <span id="name2">name2</span> <span id="name3">name3</span> <span id="name4">name4</span> <span id="name5">name5</span> 等 我想要一些东西: $("#name [1-5] ").cl

例如,我有:

<span id="name1">name1</span>
<span id="name2">name2</span>
<span id="name3">name3</span>
<span id="name4">name4</span>
<span id="name5">name5</span>

我想要一些东西:

$("#name  [1-5] ").click(function(){
    $(this).css('background-color', 'red');
});
我不会加课。我想将其用于id和正则表达式。

您可以使用匹配id(或任何属性值)的开头

$("span[id^='name']").click(function(){
    $(this).css('background-color', 'red');
});

是否可以使用
span
作为选择器?您可能需要更具体一些,例如,也传递parents类:
。parentClass span

您有几个选项:

$("span").filter(function(){
    return /name[1-5]/.test($(this).attr('id'));
}).click(function(){

});
  • 使用一个类。它很容易添加,并且在本例中正是它们的正确用法。它也将是最快的

  • 使用循环:


    对于(var i=1;i如果这些是您唯一的span元素,您可以执行以下操作

    $('span').each(function(i) {
        $(this).click(function() { $(this).css('background-color', 'red'); }
    });
    
    或者,如果它们是ID以“name”开头的唯一元素,则可以使用jQuery“starts with”选择器


    您可以在循环中构造用于$-选择的字符串,如

    for (var i = 1; i < 6; i++){
    var sel = '#name'+i;
    $(sel).doWhatever();
    }
    
    for(变量i=1;i<6;i++){
    var sel='#name'+i;
    $(sel.doWhatever();
    }
    

    尽管我仍然认为以jQuery的方式选择它们(比如$('#parentElement').find('span'))或使用类可能是更好的解决方案,但上面的答案是可以的,但我实际上认为如果可以添加类,就应该添加。这就是类的用途——标记类似/相关的元素

    如果您只有几个ID/类,那么应该使用“#id1,#id2,…”选择器


    如果有多个,为了语义和可维护的代码和标记,您必须添加类

    谢谢,如果我有例如“name1xxx,name2xxx,name10xxx”等,会怎么样?我想使用3方法。您可以执行
    $('span[id^=“name”]')。筛选('span[id$=“xxx”'))要获取任何以
    name`开头并以xxx结尾的内容。谢谢,如果我有例如“name1xxx、name2xxx、name10xxx等”,那么有带有选择器的
    结尾:
    $([id$='xxx'])
    我可以合并两个选择器吗?^和&?谢谢,如果我有例如“name1xxx、name2xxx、name1xxx、name10xxx”呢etc?这将选择以“名称”开头的所有内容,因此也将选择这些内容。这是您想要的,还是您需要不选择这些内容?我有自动生成的ID,name1xxx,name2xxyy,name10xxx,name100xxxyyy等。我想知道如何操作:)$(“[ID^=“name”]”将选择以“名称”开头的所有内容,例如名称1、名称10、名称2xxxyy等。。。
    $('[id ^= "name"]').each(function(i) {
        $(this).click(function() { $(this).css('background-color', 'red');
    });
    
    for (var i = 1; i < 6; i++){
    var sel = '#name'+i;
    $(sel).doWhatever();
    }