2011-05-11 3 views
0

На самом деле у меня есть два пролета с идентификаторами типа date_eform и time_eform.Как получить идентификатор span, начинающийся со слова

Теперь я должен получить эти идентификаторы .. и проверить, начинается ли с span идентификатор date_, тогда мне нужно выполнить некоторую логику. и если span id начинается с time_, то другое действие.

<span id='date_eform'></span><span id='time_eform'></span> 

Пожалуйста, помогите мне в этом.

ответ

0

вам нужно starts with selector

так

$.each('span[id^="date_"]',function(){ 
    //your code here 
}); 

и

$.each('span[id^="time_"]',function(){ 
    //your code here 
}); 
+2

Это лучше предоставить образец кода тоже. В архивных целях ответ можно найти здесь на SO. –

+0

@ Джейсон Маккрири работал над этим – mcgrailm

0

Попробуйте это:

$("span[id^='date_']").something...  
$("span[id^='time_']").something-else... 
0

это должно сделать это:

$('[id^="date_"]') 
0

JQuery синтаксис атрибута заканчивается:

$('span[id$="_eform"]') 

JQuery синтаксис атрибута начинается с:

$('span[id^="_eform"]') 

JQuery синтаксис атрибута содержит:

$('span[id*="_eform"]') 

Из того, что я понимаю, если вам нужно сделать что-то вроде:

$('span[id$="_eform"]') 

Затем с each методом, тест, если JQuery-объектные идентификаторы date или time.

var elements = $('span[id$="_eform"]'); 
elements.each(function() { 
    if(this.id.substring(0,5)=='date') { 
     // handle dates 
    } else if(this.id.substring(0,5)=='time_') { 
     // handle times 
    } 
}); 
0

Вы можете использовать различные способы достижения этой цели, большинство из этих вопросов перечислены в других ответах.

Однако, если у вас есть только два элемента, почему бы вам просто не обратиться к ним напрямую с ID? Может быть, вы хотите что-то сделать с ними после того, как на них были предприняты действия? В этом случае все методы, перечисленные здесь, не могут быть использованы.

Если вы просто хотите, чтобы связать два селекторов вы можете просто использовать

$('#date_eform, #time_eform')... 

Что вы просите не делает слишком много смысла в контексте вашего вопроса. Если вы добавите более подробную информацию, может быть лучший способ сделать то, о чем вы просите.

0

Я предлагаю вам использовать id и class для выполнения этой задачи; это сделает его более ясным. Пример ниже:

HTML:

<span id='date' class='eform'></span> 
<span id='time' class='eform'></span> 

JavaScript (с помощью JQuery):

$(".eform").each(function() { 
    switch (this.id) { 
    case "date": 
     // do something 
     break; 

    case "time": 
     // do something 
     break; 

    default: 
     // "id" is not a case 
    } 
}); 

Пример здесь: http://fiddle.jshell.net/9hcfx/

Смежные вопросы