Jump to content
  • 0

Должен ли так работать innerHTML ?


nim
 Share

Question

<html>
<head>
<script type='text/javascript'>
function init_t(obj)
{
obj.innerHTML = "<tr><td>Hello</td></tr>";
}
</script>
</head>

<body>

<form name="form1" method="post" action="Default.aspx" id="form1">
<table id="mytable" >
<script type='text/javascript'>

init_t(this);

</script>
</table>
</form>

</body>
</html>

Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0
<html>
<head>
<title>(X)</title>
<style type="text/css">

div{
border:1px solid #000;
}

</style>

<script type='text/javascript'>
function init_t(obj,vl)
{
obj.innerHTML = vl;
}
</script>

</head>

<body>
<div class="container">
<div onclick='init_t(this,"<div>Hello</div>");'>left</div>
</div>
</body>
</html>

Link to comment
Share on other sites

  • 0

kiD ну мне DIV не нужен а нужна таблица и событие не клик а загрузка страницы, проблема в том что table вообще не воспринимает innerHTML, хотя свойство меняется, но ничего не происходит и ошибка не вылазит.

Link to comment
Share on other sites

  • 0

nim,

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

По поводу this - нужно вам просто поизучать это дело, в 2-х словах не объяснишь, в этом скрипте значением this является ссылка на окно (объект window), которому вы созда?те зачем-то свойство innerHTML, и смысла это не имеет вовсе.

По поводу строительства таблицы через innerHTML - не лучшее решение, например, в IE таким образом таблицы не строят, надо по-другому.

Link to comment
Share on other sites

  • 0

спасибо за ответы. попрошу еще, чтоб лишнюю тему не создавать, посмотреть работает ниже следующий под браузерами оперы, фф и ie7, посмотрите пож. у кого установлены.

<html>
<body>

<script type='text/javascript'>

var h = new ActiveXObject("Scripting.Dictionary");

h.add ("a", "test");

if (h.Exists("a"))
{
alert('exist');
}


</script>

</body></html>

Link to comment
Share on other sites

  • 0

Про Scripting.Dictionary не знаю ничего, но как понял это массив. Можно сделать вот так:

<script type='text/javascript'>
var h = new Array("a", "test");
if (h[0]!==undefined){
alert('exist');
}
</script>

Я не понимаю задачу данного скрипта.

Link to comment
Share on other sites

  • 0

yopopt хеш таблица, это специфический массив. В него добавляются значения по ключу, по немуже они потом извлекаются. Например у вас есть код записи, по этому коду вы можете получить поля этой записи.

Link to comment
Share on other sites

  • 0

ну может этот вариант и похож на хештаблицу, есть сомнение в производительности данного подхода. Добавлять новые значение через push? и еще вопрос почему вы пишете h['a']!==undefined а не h['a'] != null ? в си подобных языках используется имменно такая конструкция, особенно смущает !== вместо !=

Link to comment
Share on other sites

  • 0
ну может этот вариант и похож на хештаблицу, есть сомнение в производительности данного подхода.

У меня тоже. :D Но вот так сходу ничего другого предложить не могу. Вы же не собираетесь добавлять значения тысячами?

и еще вопрос почему вы пишете h['a']!==undefined а не h['a'] != null ? в си подобных языках используется имменно такая конструкция, особенно смущает !== вместо !=

Написал автоматически. Просто по привычке проверяю на существование. По той же причине здесь строгое не равно. h['a'] != null будет также работать, как и в си.

Link to comment
Share on other sites

  • 0

Хочу еще попросить потестить этот код в опере, фф, ие7

<html><body>
<xml id="fdata">
<?xml version="1.0" ?>
<folders>
<folder>Caption1</folder>
<folder>Caption2</folder>
<folder>Caption3</folder>
</folders>
</xml>

<xml id="f_transform">
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match = "/">
<xsl:for-each select="folders/folder">
<xsl:value-of />
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>
</xml>

<div id="xmlRes" />

<script>

var rr = fdata.transformNode(f_transform.XMLDocument);
//elert (rr);
xmlRes.innerText = rr;

</script>

</body></html>

Link to comment
Share on other sites

  • 0
Ну что-ж, тогда можно так:

<script type='text/javascript'>
var h = {
'a' : 'a',
'test' : 'test',
'ключ' : 'запись'
}
if (h['a']!==undefined){
alert('exist');
}
</script>

var h = {'key' : 'record'};

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

неужели так? h.key1 = "record1"

если так, то каким образом поступать если имя ключа изветно тоже только в динамике?

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