Как получить идентификатор диапазона, который начинается со слова

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

на самом деле у меня есть два диапазона с идентификаторами, подобными этому date_eform и time_eform .

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

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

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

Ответ №1:

вам нужно начинается с селектора

итак

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

и

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

Комментарии:

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

Ответ №2:

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

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

Ответ №3:

Это должно сработать:

 $("span[id^={word}]")
  

Где {word} — это слово, с которого вы хотите, чтобы идентификатор элемента начинался.

Поможет следующий пример:http://api.jquery.com/attribute-starts-with-selector

Ответ №4:

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

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

Ответ №5:

Синтаксис 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
    }
});
  

Ответ №6:

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

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

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

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

То, о чем вы просите, не имеет слишком большого смысла в контексте вашего вопроса. Если вы добавите больше деталей, возможно, найдется лучший способ сделать то, о чем вы просите.

Ответ №7:

Я предлагаю вам использовать 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