To proste:
$('[id^=tabId][id$=componentId]').each(function(){
var id = $(this).attr('id'); // tabId:someDynamicId:rowId:componentId
var list = id.split(':');
console.log(list[0]); // tabId
console.log(list[1]); // someDynamicId
console.log(list[2]); // rowId
console.log(list[3]); // componentId
})
Wildcards in jQuery selectors
ale jestem polecając używać właściwych narzędzi do tej pracy. Identyfikatory są przydatne do znalezienia konkretnego elementu, ale w twoim przypadku lepiej użyć jednej lub dwóch klas i atrybutów danych. Na przykład:
<div class="tabs" data-component-id="x" data-tab-id="y">
Następnie znaleźć wszystkie elementy i używać $ $ (this) .data ('składnik-id ') i $ (this) .data (' tab-id ') (' zakładki').
$('.tabs').each(function(){
var component_id = $(this).data('component-id');
var tab_id = $(this).data('tab-id');
});
Aktualizacja:
jest przykładem wykorzystania tego jako funkcję:
function(tabId,componentId) {
$('[id^='+tabId+'][id$='+componentId+']').each(function(){
var id = $(this).attr('id'); // tabId:someDynamicId:rowId:componentId
var list = id.split(':');
console.log(list[0]); // tabId
console.log(list[1]); // someDynamicId
console.log(list[2]); // rowId
console.log(list[3]); // componentId
})
}
+1, która była niesamowita! – tusar
Dzięki człowieku .. To zadziałało :) :) –