2013-06-02 5 views
0

У меня есть страница со многими входами внутри набора разных div.Использовать селектор jQuery как метод

A Подмножество этих входов создается динамически, и их также можно удалить.

По создающего и удаление элементов я мог бы иметь список входов имени, как показано:

<div id="first"> 
    <input type="text" name="elem[0][elem_option][0][price]" value=""> 
    <input type="text" name="elem[0][elem_option][1][price]" value=""> 
    <input type="text" name="elem[0][elem_option][5][price]" value=""> 
    <input type="text" name="elem[0][elem_option][21][price]" value=""> 

    <input type="text" name="elem[3][elem_option][0][price]" value=""> 
    <input type="text" name="elem[3][elem_option][1][price]" value=""> 
    <input type="text" name="elem[3][elem_option][3][price]" value=""> 
    <input type="text" name="elem[3][elem_option][8][price]" value=""> 
</div><!-- first --> 
<div id="second"> 
    <input type="text" name="elem[1][elem_option][1][price]" value=""> 
    <input type="text" name="elem[1][elem_option][2][price]" value=""> 
    <input type="text" name="elem[1][elem_option][7][price]" value=""> 
    <input type="text" name="elem[1][elem_option][8][price]" value=""> 

    <input type="text" name="elem[5][elem_option][5][price]" value=""> 
    <input type="text" name="elem[5][elem_option][6][price]" value=""> 
    <input type="text" name="elem[5][elem_option][8][price]" value=""> 
    <input type="text" name="elem[5][elem_option][9][price]" value=""> 
</div><!-- second--> 
    .... 

Мне нужно, чтобы выбрать все элементы с именем, которое заканчивается с [цена] и сохранить в другая переменная каждого div.

Я попытался селектор JQuery, используемый в качестве метода getelementbyid:

first_price_inputs = document.getElementById('first').jQuery('input[name$="[price]"]') 
second_price_inputs = document.getElementById('second').jQuery('input[name$="[price]"]') 

Но я получаю эту ошибку:

Uncaught TypeError: Object #<HTMLDivElement> has no method 'jQuery' 

пожалуйста, помогите!

+3

* «Я попробовал селектор jQuery, используемый как метод getelementbyid» *: Почему вы думаете, что это возможно? Элементы DOM не имеют метода 'jQuery'. Я рекомендую прочитать некоторые учебники jQuery: http://learn.jquery.com/. –

+0

Есть ли способ исключить jquery и получить эти элементы ввода с помощью базового javascript? –

+1

Несомненно, jQuey - это просто библиотека. Вы можете использовать 'getElementsByTagName', чтобы получить все теги' input', а затем перебрать их и посмотреть, какая из них имеет «цену» в ее имени. –

ответ

4

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

first_price_inputs = jQuery('#first input[name$="[price]"]'); 
second_price_inputs = jQuery('#second input[name$="[price]"]'); 

Посмотрите здесь: http://jsfiddle.net/qRDkq/

2

попробовать

first_price_inputs = jQuery('#first > input[name$="[price]"]') 

@Cherniv: его не ввод ID #first, а потомок элемента с ID #first типа input. Итак, селектор потомок должен использоваться afaik?

+0

Пространство * есть * селектор потомок. 'a b' означает *" выберите все буквы b, которые являются потомками '*. '>' - дочерний селектор. Выбор элемента 'input' с идентификатором' first' будет 'input # first'. –

+0

Спасибо. Извлеченный урок ;-) –

+0

Но ваш ответ тоже хорош, это более конкретный – Cherniv

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