Вход

Просмотр полной версии : Почему не работает селектор для нового элемента


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
$('#form').filter('select,input');

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

рони
10.12.2015, 12:59
Mess4me,
без разницы

Mess4me
10.12.2015, 13:00
рони,
странно , у меня не работало $('#form').filter('select,input');

рони
10.12.2015, 13:04
filter
find

Prorab337
10.12.2015, 13:05
лучше так наверное
$('#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
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
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
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
Prorab337,
если инпут проинициализирован раньше его нельзя удалить(как обьект) пока в скрипте будет ссылка на него.

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

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