2009-07-22 2 views
5

Я только начал использовать JQuery, а также различные источники указывают на то, что следующий должен использоваться для ссылки на элемент по ID:JQuery - Ссылка по ID - Предполагается вернуть массив?

$("#imgThumbnail") 

теоретически сделать что-то подобное можно:

$("#imgThumbnail").src; 

Но мое тестирование указывает что-то вроде $("#imgThumbnail") возвращает массив, сделав следующий необходимый:

$("#imgThumbnail")[0].src; 

Do I Rea lly нужно ссылаться по индексу массива каждый раз, когда я пытаюсь ссылаться на что-то по ID (т. е. var oObj = $("#someobjectid")[0];)?

+0

Да, у меня случайно возникла такая же проблема, и я не верю, что приведенные ниже ответы решают ее. – jspooner

ответ

6

Вы должны получить атрибут Src, чтобы получить значение

$("#imgThumbnail").attr('src'); 
3

$ (спецификатор) возвращает коллекцию, так что да, если вы хотите вызвать что-то на отдельном члене вам нужно выбрать, какие один. В большинстве случаев, хотя есть оператор коллекции, который вы можете использовать для достижения того же результата. Например, вы можете называть $ ('# imgThumbnail'). Attr ('src', 'value')

0

Я не думаю, что вы должны использовать .src с jQuery.

Try $("#imgThumbnail").attr('src'); 

(это будет читать атрибут Src, вы установите его со вторым арг, если вам нравится)

Смотрите здесь: http://docs.jquery.com/Attributes/attr

0

установить СРК атрибут использовать

$("#imgThumbnail").attr("src", value) 

если вы используете что-то вроде селектора классов или тегов, подобных этому

$("img").attr("src", value) 

Он изменит все атрибуты изображения src на странице. Следовательно, функция $ возвращает массив.

И вам не нужно указывать его конкретно.

6

This post объясняет, что возвращает функция $ и различные способы ее использования.


$(selector) 

Возвращает объект JQuery, который может содержать ряд элементов DOM.


$(selector)[0] or $(selector).get(0) 

Возвращает первый результат в виде фактического элемента DOM.


$(selector).eq(0) or $($(selector).get(0)) 

Возвращает элемент DOM, обернутый в объект JQuery, так что мы можем сделать такие вещи, как:

$(selector).eq(0).addClass("deleted").fadeOut(); 
1

Вы должны иметь в виду, что это на самом деле не является массивом, это объект JQuery который, среди прочего, позволяет получить доступ в виде массива

1
$(whatever) 

возвращает объект jQuery. На объекте jQuery вы можете создавать jQuery и jQuery-плагины, например. .text(), чтобы вернуть текст внутри элемента или .css("background", "pink"), чтобы сделать элемент (ы) розовым.

Поскольку src не является jQuery, к которому вы не можете получить доступ. ЦСИ, однако, как атрибут HTML, и вы можете получить доступ к тем, с помощью метода атр:

.attr("src")` and `.attr("src", "http://www.example.com/myimage.png") 

ЦСИ также DOM-свойство, и вы можете получить доступ к DOM-свойства, используя [index] или итерацию через объект JQuery с каждым :

.each(function(){ 
    this.src = "http://www.example.com/myimage.png"; 
}) 
Смежные вопросы