Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery. Доступ к объектам в DOM. Селекторы (https://javascript.ru/forum/jquery/20955-jquery-dostup-k-obektam-v-dom-selektory.html)

Yes 23.08.2011 22:27

Jquery. Доступ к объектам в DOM. Селекторы
 
Как правильно обратиться к объекту по тегу и id, тоесть $("тег id") ?
Пытаюсь выбрать span конкретным id.

$("span#"+id).text("парампампам");

Как правильно это делается? Документацию к jquery наизусть уже выучил, ниче не выходит. Кто знает направьте путь истинный =)

devote 23.08.2011 22:35

$("#"+id).text("парампампам");
для id не нужно указывать имя тега, так как id не может быть одинаковым у разных элементов.

Yes 24.08.2011 08:37

Почему не может? Запрещено стандартом?
Только что проверил, в firefox работает этот код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>it's work</title>
<script language="javascript" src="http://code.jquery.com/jquery-1.6.2.min.js" type="text/javascript"></script>
</head>

<body>
<p>Имеем два элемента с одинаковыми ID. При нажатии на кнопку изменяется 1 из элементов с тегом Span</p>
<div id="one">Div с id=one</div>
<span id="one">Span с с id=one</span>
<br>
<button>изменить текст в элементе span</button>
<script>
$(document).ready(function(){

$("button").click(function(){
$("span#one").text("Новый текст в Span ");
});

});
</script>

</body>
</html>


Код работает. Но проблема не решилась. Вот кусок моего кода
<ul id="1123" style="display: block;">
<li id="1124">
<img id="1124" class="file" src="images/file.gif">
<span id="1124" class="name" style="color: red;">Текст</span>
</li></ul>

В отдельном js файле выполняется функция при нажатии на span

//переменные используются в других функциях
var id; 
var obj;
$(document).ready(function()
{
$(".name").live('click', function(event)
		{

	id=$(event.target).attr("id");
	obj=$(event.target);
		
	console.log(id); //На этом участке есть id с цифрой 1124
	console.log($("span#"+id).text()); //а тут firebag пишет  (an empty string)
//............и дальше остальной код

Вот такая вот проблема, не могу понять почему при выполнении этого кода не меняется текст. Почему?

float 24.08.2011 09:29

Цитата:

Почему не может? Запрещено стандартом?
ДА.
Доступ к элементу: $(...)[n]

melky 24.08.2011 11:01

раз вы начали делать "нестандартно", то и продолжайте так делать :
$("span").filter("#"+id).text();



Цитата:

Сообщение от Yes (Сообщение 122071)
Только что проверил, в firefox работает этот код

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

Yes 24.08.2011 11:17

Цитата:

Сообщение от melky (Сообщение 122097)
раз вы начали делать "нестандартно", то и продолжайте так делать :
$("span").filter("#"+id).text();





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

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


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