2013-10-13 5 views
-1

У меня есть проблема здесь или больше похоже на путаницу. Поэтому я знаю основы изменения атрибута в html через javascript. Например:Изменить значение атрибута Способ Javascript

<iframe id="iframe" src="http://www.stackoverflow.com/" width="610px"> 

Таким образом, чтобы изменить атрибут ширины для элемента с идентификатором «IFRAME» будет:

document.getElementById("iframe").setAttribute("width", "700px"); 

Но как я могу изменить атрибут с помощью JavaScript, когда речь идет, как этот путь? (обратите внимание на разницу между атрибутом width)

<iframe id="iframe" src="http://www.stackoverflow.com/" width=610> 

ответ

2

But how can I change attribute via javascript when it comes like this way?

Точно так же:

.setAttribute("width", "700px"); 

или

.setAttribute("width", "700"); 

или

.setAttribute("width", 700); 

Обратите внимание, что все значения атрибутов считаются нитями. Синтаксис HTML позволяет просто опустить кавычки в определенных обстоятельствах, но это не изменяет тип данных. Из HTML specification:

By default, SGML requires that all attribute values be delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39).

[...]

In certain cases, authors may specify the value of an attribute without any quotation marks. The attribute value may only contain letters (a-z and A-Z), digits (0-9), hyphens (ASCII decimal 45), periods (ASCII decimal 46), underscores (ASCII decimal 95), and colons (ASCII decimal 58). We recommend using quotation marks even when it is possible to eliminate them.

Если вы посмотрите на DOM API specification, вы можете увидеть, что setAttribute определяется принять DOMString в качестве аргумента. Реализация JavaScript преобразует любое значение, которое вы передаете этому методу соответствующим образом.

+0

спасибо за объяснение :) – Natsume

+0

+1 за то, что не сказал «просто используйте метод' .attr() 'jQuery. :) – Scottie

1

Точно так же. Хотя в вашем втором примере вы не установили id должным образом.

<iframe id="iframe" src="http://www.stackoverflow.com/" width=610> 
<--  ^added equal sign here        --> 

При том, что изменить код работает отлично: http://jsfiddle.net/FECq3/

+0

oh знак равенства был опечатка ошибки, не заметил его xD. Ooops – Natsume

+0

@Например, вы должны были видеть эту ошибку в своей консоли javascript: 'Uncaught TypeError: Невозможно вызвать метод setAttribute 'null', который сообщает вам, что вы не найдёте нужный элемент. Прочтите свои ошибки! –

+0

lol sorry Я печатал их в блокноте для этих примеров. Я полностью забыл о int & String, пока Эмиссар не упомянул о них xD – Natsume

Смежные вопросы