Javascript 如何提醒所有动态id';在一个范围之内
我这里有一个动态表,每个单元格都有不同的动态id。如何提醒动态id在一个范围内?在这里,我想提醒2014年8月1-1-3日至2014年8月1-1-7日期间的所有id,从heighlight类开始和结束idJavascript 如何提醒所有动态id';在一个范围之内,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我这里有一个动态表,每个单元格都有不同的动态id。如何提醒动态id在一个范围内?在这里,我想提醒2014年8月1-1-3日至2014年8月1-1-7日期间的所有id,从heighlight类开始和结束id <table> <tbody> <tr> <td id="1-1-3-Aug-2014" class="heighlight"></td> <td 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>
案例1。如果所有元素都具有
heighlight
类:
$("td.heighlight").each(function() {
alert($(this).attr("id"));
});
案例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"));
我编写了一个示例代码(没有Jquery),不确定这是否正是您想要的:
此代码对范围使用两个变量:start
和last
(即“日期”ID中的“日期”)。
id在范围内且具有高亮度等级的每个td
的值将被警告
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);
var start=3,last=9,//您的范围
输出=”;
而(启动jQuery方式
$('.heighlight').each(function () {
alert( $(this).attr("id") );
});
这里是另一个代码:
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);
这一个是针对所有的td
heighlight
类,并提醒他们的id
s:
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);
JS:
var tds=document.getElementsByClassName(“heighlight”),
输出=”;
对于(i=0;i
没有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;
});
//收集候选元素
var els=document.queryselectoral('.heighlight[id$=2014年8月]);
//范围过滤器
els=[].filter.call(els,函数(el){
变量n=el.id.split('-')[2];
返回n>=3&&n=3&&n要获取具有突出显示的类的ID吗?我正在尝试在具有类的范围之间发出警报heighlight@kannanD.S-您的示例不是很好,因为可以单独使用类来选择范围。您可以使用选择器,如.heighlight[id$=Aug-2004]
然后过滤范围1-1-3
到1-1-7
。你的意思是“高亮度”还是“高亮度”?您还需要指定heighlight类。您的意思是,通过使用类来警告id吗?不,OP需要id范围和heighlight类,而不仅仅是范围。是的,但我认为假设没有其他元素具有相同的类是不好的,td。heighlight
具有较少的副作用。我认为最好是为id分配一个id表格和用法:$('#someTableId.heighlight')
。下面的投票人是否愿意解释一下,答案有什么问题?
var els = $('.heighlight[id$=Aug-2014]').filter(function(i, el) {
var n = el.id.split('-')[2];
return n >= 3 && n <= 7;
});