2014-11-05 2 views
0

У меня есть HTML с 2JQuery функция находки не работает

<select> ... </select> 

элементов внутри диапазона с классом spanClass. Теперь я пытаюсь выбрать те выбирает с JQuery с этим кодом:

jQuery(document).ready(function() { 
    spans = jQuery('.spanClass'); 
    spans.each(function() { 

     var inputs = jQuery(this).find('select'); 
     console.log(inputs);// This is working 
     inputs.each(function() { 
      alert('test'); //This not 
     }); 
    }); 
}); 

HTML:

<table> 
<tr> 
    <td> 
     <select name="een"> 
      <option> test </option> 
     </select> 
    </td> 
</tr> 

     <select name="twee"> 
      <option> test </option> 
     </select> 
    </td> 
</tr> 
</table> 

Однако, это не работает, может кто-нибудь сказать мне, почему?

+2

выглядит отлично - вы можете поделиться HTML образца –

+3

Вы имеете неправильный DOM. вы не завернули второй выбор правильно в элементах tr и td. Кроме того, скрипка отлично подходит для дома, о котором вы упомянули. http://jsfiddle.net/ca8st4oz/ –

+1

Я не думаю, что промежутки (встроенные элементы) должны содержать таблицы (элементы блока). В зависимости от типа doctype таблица может быть построена вне ее потенциального контейнера. Тот факт, что у кого-то есть этот HTML-код, работающий в скрипке, не означает, что он будет работать под всеми дотипами во всех браузерах. –

ответ

1

Первая> Put Таблица внутри Div вместо Span (это правильный способ сделать это)

Второй> Исправьте таблицы тегов как на рисунке ниже и коды (некоторые из них неверны!)

Теперь> Используйте эти коды

HTML:

<div class="divClass"> 
<table> 
    <tr> 
     <td> 
      <select name="een"> 
       <option> test </option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <select name="twee"> 
       <option> test </option> 
      </select> 
     </td> 
    </tr> 
</table> 
</div> 

JQuery:

jQuery(document).ready(function() { 
    spans = jQuery('.divClass'); 
    spans.each(function() { 

     var inputs = jQuery(this).find('select'); 
     console.log(inputs); 
     inputs.each(function() { 
      console.log(jQuery(this).prop("name")); 
     }); 
    }); 
}); 

Результат:

enter image description here

0
var inputs = jQuery(this).find('select'); // Isn't inputs empty jQueryObject? length 0? 

Если входы пустые jQueryObject, функция обратного вызова, передаваемая .each(), никогда не вызывается.

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