Просмотр полной версии : Почему не работает селектор для нового элемента
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);
Работает без проблем, а вот почему селектор не видит?
Prorab337
10.12.2015, 12:31
Большой там макет, может что-то примерно в какую сторону копнуть. Я бы посмотрел. Готового решения не ищу, хотя бы что попробовать?
$('#form').filter('select,input');
лучше так наверное
$('#form input, #form select');
рони,
странно , у меня не работало $('#form').filter('select,input');
Prorab337
10.12.2015, 13:05
лучше так наверное
$('#form input, #form select');
Возможности влиять на сторонний селектор нет. Вернее есть, ну его трогать не хотелось бы. Если его править то можно решить проблему
таким макаром
JS] $(document).filter($('#form input, #form select'));[/JS]
Ну мне нужно рабочее решение в моем коде, чтобы он не зависел от стороннего кода
Prorab337
10.12.2015, 13:07
find
Селектор в стороннем скрипте, вся задача как раз в том чтобы селектор не трогать. Потому что он может быть разный и для каждой версии свой скрипт переделывать затратно по времени
Prorab337,
нельзя фильтровать яблоки по грушам
Prorab337
10.12.2015, 13:08
Прошу прощение в селекторе действительно find запамятовал
Prorab337
10.12.2015, 13:13
Опечатался, ну проблема то та же. Селектор не видит новые элементы, а старые хватает
Prorab337,
если так написать то не работает?
$('#form').find( $('select, input'))
Prorab337
10.12.2015, 13:22
Prorab337,
если так написать то не работает?
$('#form').find( $('select, input'))
Пробовать не буду. Повторюсь. Селектор я не должен трогать, это сторонний код который в разных версиях, на разных сайтах будет немного отличатся.
Prorab337
10.12.2015, 13:23
Мне нужно в моем коде сделать так чтобы селектор другого js его видел
Prorab337,
пардон , я опечатался .
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>
Это да, работает замечательно. В идеальных условиях то да, не пойму в чем проблема в проекте.
Prorab337,
если инпут проинициализирован раньше его нельзя удалить(как обьект) пока в скрипте будет ссылка на него.
Prorab337
10.12.2015, 14:55
Prorab337,
если инпут проинициализирован раньше его нельзя удалить(как обьект) пока в скрипте будет ссылка на него.
Ок, допустим без замены. Я просто добавляю элемент и селектор его не видит
Prorab337,
можно только гадать, что вы хотите сделать и как оно на самом деле.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot