2014-08-29 42 views
0

我在這裏有一個動態表,每個單元有不同的動態ID。我如何提醒一個範圍之間的動態ID?在這裏,我想提醒所有身份證在1-1-3-Aug-2014和1-1-7-Aug-2014之間,開始和結束來自高亮班的ID。如何提醒所有動態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> 
+0

你想獲取具有'highlight'類的id? – 2014-08-29 06:29:33

+0

雅iam試圖警告之間的班級高光 – 2014-08-29 06:31:02

+0

@ kannanD.S你的例子不是很好,因爲範圍可以單獨使用類選擇。 – RobG 2014-08-29 06:32:25

回答

-1

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

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

情況。如果所有的元素沒有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

+0

是的,但我認爲不要假設沒有其他元素具有相同的類別,「td.heighlight」副作用較小。國際海事組織最好的是爲表分配一個id並使用:'$('#someTableId .heighlight')'。 – heikkim 2014-08-29 06:39:04

+0

downvoter會小心解釋,答案有什麼問題? – heikkim 2014-08-29 06:53:08

1

我做了一個示例代碼(沒有Jquery),沒有確定如果這是你正在尋找的內容:

此代碼使用範圍的兩個變量:startlast(這是「日期」ids中的「日期」)。 每個td的值在範圍內,並具有類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); 
+0

您還需要指定* heighlight *類。 – RobG 2014-08-29 06:38:54

+0

你的意思是,通過使用類來提醒編號? – qtgye 2014-08-29 06:39:55

+0

不,OP需要ID範圍和*高光*類,而不僅僅是範圍。 – RobG 2014-08-29 06:55:12

-2
$('.heighlight').each(function(){ 
alert($(this).attr('id')); 
}); 
+0

爲什麼它被低估?請幫忙瞭解 – 2014-08-29 06:56:32

-2

jQuery的方式

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

DEMO

+0

爲什麼降價?請解釋這個問題。 – 2014-08-29 06:57:46

0

這裏是另一個代碼:

這一個目標的所有td s的heighlight類和提醒他們id S:

FIDDLE

JS:

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

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

alert(output); 
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個選擇並通過主機對象調用本地方法那樣。 jQuery有類似的東西:

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