Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Почему не работает селектор для нового элемента (https://javascript.ru/forum/jquery/60082-pochemu-ne-rabotaet-selektor-dlya-novogo-ehlementa.html)

Prorab337 10.12.2015 12:01

Почему не работает селектор для нового элемента
 
Ребят помогите:help: . Застрял.
Моя замена элемента:
$('input[name *= addess]').replaceWith('<select name="address"><option value="1">Адрес1</option></select>');


Далее сторонний скрипт делает выборку:
$('#form').filter('select,input');


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

Замена элемента 100% происходит до выборки. В чем беда?
Событие то не вопрос так прикрутил
$(document).on('change', 'input[name *= addess]', someEvent);


Работает без проблем, а вот почему селектор не видит?

рони 10.12.2015 12:24

Prorab337,
нужен макет

Prorab337 10.12.2015 12:31

Большой там макет, может что-то примерно в какую сторону копнуть. Я бы посмотрел. Готового решения не ищу, хотя бы что попробовать?

Mess4me 10.12.2015 12:41

Цитата:

Сообщение от Prorab337
$('#form').filter('select,input');

лучше так наверное
$('#form input, #form select');

рони 10.12.2015 12:59

Mess4me,
без разницы

Mess4me 10.12.2015 13:00

рони,
странно , у меня не работало
Цитата:

Сообщение от Prorab337
$('#form').filter('select,input');


рони 10.12.2015 13:04

Цитата:

Сообщение от Prorab337
filter

find

Prorab337 10.12.2015 13:05

Цитата:

Сообщение от Mess4me (Сообщение 399417)
лучше так наверное
$('#form input, #form select');

Возможности влиять на сторонний селектор нет. Вернее есть, ну его трогать не хотелось бы. Если его править то можно решить проблему
таким макаром
JS] $(document).filter($('#form input, #form select'));[/JS]

Ну мне нужно рабочее решение в моем коде, чтобы он не зависел от стороннего кода

Mess4me 10.12.2015 13:05

рони,
это да :yes:

Prorab337 10.12.2015 13:07

Цитата:

Сообщение от рони (Сообщение 399424)
find

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

рони 10.12.2015 13:08

Prorab337,
нельзя фильтровать яблоки по грушам

Prorab337 10.12.2015 13:08

Прошу прощение в селекторе действительно find запамятовал

Prorab337 10.12.2015 13:13

Опечатался, ну проблема то та же. Селектор не видит новые элементы, а старые хватает

Mess4me 10.12.2015 13:17

Prorab337,
если так написать то не работает?
$('#form').find( $('select, input'))

Prorab337 10.12.2015 13:22

Цитата:

Сообщение от Mess4me (Сообщение 399431)
Prorab337,
если так написать то не работает?
$('#form').find( $('select, input'))

Пробовать не буду. Повторюсь. Селектор я не должен трогать, это сторонний код который в разных версиях, на разных сайтах будет немного отличатся.

Prorab337 10.12.2015 13:23

Мне нужно в моем коде сделать так чтобы селектор другого js его видел

Mess4me 10.12.2015 13:28

Prorab337,
пардон , я опечатался .

рони 10.12.2015 13:29

Prorab337,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
 $('input[name *= addess]').replaceWith('<select name="address"><option value="1">Адрес1</option></select>');
 var a = $('#form').find('select,input');
 alert([a.length,a[0]])
});


  </script>
</head>

<body>  <form action="" id="form"><input type="text" name="addess"></form>

</body>

</html>

Prorab337 10.12.2015 13:36

Цитата:

Сообщение от рони (Сообщение 399436)
Prorab337,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
 $('input[name *= addess]').replaceWith('<select name="address"><option value="1">Адрес1</option></select>');
 var a = $('#form').find('select,input');
 alert([a.length,a[0]])
});


  </script>
</head>

<body>  <form action="" id="form"><input type="text" name="addess"></form>

</body>

</html>

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

рони 10.12.2015 14:06

Prorab337,
если инпут проинициализирован раньше его нельзя удалить(как обьект) пока в скрипте будет ссылка на него.

Prorab337 10.12.2015 14:55

Цитата:

Сообщение от рони (Сообщение 399439)
Prorab337,
если инпут проинициализирован раньше его нельзя удалить(как обьект) пока в скрипте будет ссылка на него.

Ок, допустим без замены. Я просто добавляю элемент и селектор его не видит

рони 10.12.2015 14:58

Prorab337,
можно только гадать, что вы хотите сделать и как оно на самом деле.


Часовой пояс GMT +3, время: 01:10.