如何警告范围之间的所有动态ID

时间:2014-08-29 06:19:58

标签: javascript jquery html css

我这里有一个动态表,每个单元格都有不同的动态ID。如何在范围之间提醒动态ID?在这里,我想提醒2014年8月1日至6月和2014年8月1日至8月期间所有身份证,从高光级开始和结束ID。

<table>
    <tbody>
        <tr>
            <td id="1-1-3-Aug-2014" class="heighlight"></td>
            <td id="1-1-4-Aug-2014" class="heighlight"></td>
            <td id="1-1-5-Aug-2014" class="heighlight"></td>
            <td id="1-1-6-Aug-2014" class="heighlight"></td>
            <td id="1-1-7-Aug-2014" class="heighlight"></td>
            <td id="1-1-8-Aug-2014"></td>
            <td id="1-1-9-Aug-2014"></td>
            <td id="1-1-10-Aug-2014"></td>
        </tr>
    </tbody>
</table>

6 个答案:

答案 0 :(得分:1)

我做了一个示例代码(没有Jquery),不确定这是否是您正在寻找的内容:

此代码使用范围的两个变量:startlast(这是“日期”ID中的“日期”)。 我们会提醒每个td的id值在范围内并且具有类heighlight的值。

<强> SAMPLE HERE

 var start = 3, last = 9, //your range
    output="";

while ( start <= last ) {
    var id = "1-1-"+start+"-Aug-2014",
        elem = document.getElementById(id);    
    if ( elem.className == "heighlight" ) {
        output += "id: "+id+", value: "+elem.innerHTML + ", class= \"heighlight\"\n\n";       
    }    
    start++;
}

alert(output);

答案 1 :(得分:0)

这是另一个代码:

这个定位所有tdheighlight类并警告他们的id

<强> FIDDLE

JS:

var tds = document.getElementsByClassName("heighlight"),
    output = "";

for ( i = 0; i < tds.length;i++ ) {
    output += tds[i].id + "\n\n"
}

alert(output);

答案 2 :(得分:0)

如果没有jQuery,你可以这样做:

// Collect candidate elements
var els = document.querySelectorAll('.heighlight[id$=Aug-2014]');

// Filter for range
els = [].filter.call(els, function(el){
  var n = el.id.split('-')[2];
  return n >= 3 && n <= 7;
});

然而,这取决于支持CSS 3选择器的浏览器以及将主机对象作为 this 传递给本机方法。 jQuery有类似的东西:

var els = $('.heighlight[id$=Aug-2014]').filter(function(i, el) {
  var n = el.id.split('-')[2];
  return n >= 3 && n <= 7;
});

答案 3 :(得分:-1)

案例1.如果所有元素都具有heighlight类:

$("td.heighlight").each(function() {
    alert($(this).attr("id"));
});

案例2.如果所有元素都没有heighlight类,但至少有2个:

var firstElement = $("td.heighlight:eq(0)");
var elementsBetween = firstElement.nextUntil('td.heighlight');
var lastElement = elementsBetween.last().next();

alert(firstElement.attr("id"));
elementsBetween .each(function() {
    alert($(this).attr("id"));
});
alert(lastElement.attr("id"));

JSFiddle from case 2

答案 4 :(得分:-2)

$('.heighlight').each(function(){
 alert($(this).attr('id'));   
});

答案 5 :(得分:-2)

jQuery 方式

$('.heighlight').each(function () {
    alert( $(this).attr("id") );
});

<强> DEMO