Jump to content
  • 0

Вопрос: как обратиться к элементам по class'у?...


thesupertaras
 Share

Question

Подскажите пожалуйста, возможно ли обратиться через javascript к классу элементов...

знаю, что можно обратиться к элементу по id (например, var header = document.getElementById('header') )...

или по названию элемента (например, var div = document.getElementsByTagName('div')[0] )...

В первом случае обращаемся к 1 элементу с конкретным id, во втором - к элементу с заданным порядковым номером...

А очень часто бывает нужно обратиться именно к классу элементов... Если кто знает как это сделать, подскажите пожалуйста...

Спасибо...

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Вроде правильно использую метод getElementsByClassName... Объясните, почему тогда надпись text не становиться красной??? В чем причина???

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript">
window.onload = function() {
var abc = document.getElementsByClassName('abc');
abc.style.color = '#f00';
}
</script>

</head>
<body>

<p class="abc">text text</p>
</body>
</html>

Link to comment
Share on other sites

  • 0

thesupertaras, я пользуюсь функцией

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript">
function getElementsByClass(searchClass,node,tag)
{
var classElements = [];

if (node == null)
{
node = document;
}

if (tag == null)
{
tag = '*';
}

var els = node.getElementsByTagName(tag);
var elsLen = els.length;

var pattern = new RegExp("(^|s)"+searchClass+"(s|$)");
var i;
for (i = 0; i < elsLen; i++)
{
if (pattern.test(els[i].className))
{
classElements[classElements.length] = els[i];
}
}

return classElements;
}


window.onload = function() {
var abc = getElementsByClass('abc');
abc[0].style.color = '#f00';
}
</script>

</head>
<body>

<p class="abc">text text</p>
</body>
</html>

Link to comment
Share on other sites

  • 0

Sectronix, спасибо огромное!.. Вот это реально работающее решение для всех браузеров!... :cool:

thesupertaras, я пользуюсь функцией

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript">
function getElementsByClass(searchClass,node,tag)
{
var classElements = [];

if (node == null)
{
node = document;
}

if (tag == null)
{
tag = '*';
}

var els = node.getElementsByTagName(tag);
var elsLen = els.length;

var pattern = new RegExp("(^|s)"+searchClass+"(s|$)");
var i;
for (i = 0; i < elsLen; i++)
{
if (pattern.test(els[i].className))
{
classElements[classElements.length] = els[i];
}
}

return classElements;
}


window.onload = function() {
var abc = getElementsByClass('abc');
abc[0].style.color = '#f00';
}
</script>

</head>
<body>

<p class="abc">text text</p>
</body>
</html>

Link to comment
Share on other sites

  • 0
AKS, если уж и давать решение...

Опять же, первое - я не собирался давать готового решения, и второе - не пытайтесь меня вынудить писать готовые решения, т.к. это дело добровольное, будет желание - тогда и напишу.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy