0
function insertChildDiv(parentId)
{
  var ChildComment = new Element('div', {'class':'padding'});
  ChildComment.update('testing');
  $().insert(ChildComment);
}

我想要该行中 $() 内的 parentId 的值

$().insert(ChildComment);

我已经试过了

$('parentId').insert(ChildComment);

但它将 parentId 评估为字符串,并正在寻找元素 id 为“parentId”的 div,因此错误将是 $("parentId") is null

也试过

$(parentId).insert(ChildComment);

但它返回错误“$(parentId).insert 不是函数”

顺便说一句,这个 html 调用了脚本

<a href="#" onclick="insertChildDiv(123456)" id="123456more">Replies and more</a>
4

6 回答 6

2

$() 接受字符串或 DOM 元素作为参数

编辑以反映原始 Q 中的编辑。

只要 id 有效,$(parentId) 就可以工作。

传递给函数的 id 是“123456”,而您要查找的 id 是“123456more”。此外,您传递的是整数 (123456) 而不是字符串。无论如何,由于它们不匹配,因此原型找不到它。此外,id 不应以数字开头:IE8 将失败,因为 w3c 规范说 id 属性不能以数字开头(如果我没记错的话)

尝试将html更改为

<a href="#" onclick="insertChildDiv('more123456')" id="more123456">Replies and more</a>

它应该可以工作

于 2009-05-26T13:32:21.970 回答
1

是救援。“this”指的是元素本身,因此将元素引用传递给您的函数,而不是字符串。

<div onclick="insertChildDiv(this)">###</a>

<script type='text/javascript'>
function insertChildDiv(element) {
    $(element).insert(new Element('div',{'class':'padding'}).update('testing'))
}

// or if you want to add an ID:

function insertChildDiv(element) {
    $(element).insert(new Element('div',{'class':'padding',id:'more'+element.id}).update('testing'))
}

</script>
于 2009-05-26T14:41:01.160 回答
0

您通常会使用 $(parentId).insert(...) 。

$(parentId + 'more').insert(...)在您的特定情况下不起作用?

于 2009-05-26T13:30:33.473 回答
0

parentId 的值是它所在的 div 的 id <a href="#" onclick="insertChildDiv('more123456')" id="more123456">Replies and more</a>。我在函数 insertChildDiv() 中传递了这个 parentId 的值,以便插入的子 div 将嵌套在这个父 div 中。a 标签的 id 也id="more123456"将用于将 href 值更改为隐藏插入的子 div 的值

谢谢,我将重命名元素的 id 以使第一个字符变成字母。

如果我删除将 parentId 包装在 $() ex 中的单个 qoutes。$(parentId).insert(ChildComment);返回的错误是:

$(parentId).insert is not a function

如果我将 parentId 用单引号括起来,原型将找不到 id 为“parentId”的 div 错误将是$("parentId") is null

于 2009-05-26T13:58:29.140 回答
0

您的原始函数与传递给 $() 的参数一起工作......

function insertChildDiv(parentId)
{
  var ChildComment = new Element('div', {'class':'padding'});
  ChildComment.update('testing');
  $(parentId).insert(ChildComment);
}

这是一个测试用例:

将变量传递给 $()

于 2009-05-26T18:36:52.980 回答
0

哇非常感谢大家!现在它可以工作了。为了其他可能遇到同样情况的人的利益,我认为这是发生的事情:不要只使用数字作为元素的 ID(即使“id”这个词表明它应该是一个数字。)如果你真的需要,是的该 id 上的一个数字,甚至可以在 id ex 的开头连接一个字母。我现在使用的 id 是 id="parent123456"

于 2009-05-27T05:22:51.443 回答