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”)为null
也尝试了
$(parentId).insert(ChildComment);
但它返回错误“$(parentId).insert不是函数”
btw脚本是由这个html调用的
<a href="#" onclick="insertChildDiv(123456)" id="123456more">Replies and more</a>
答案 0 :(得分: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>
它应该有效
答案 1 :(得分: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>
答案 2 :(得分:0)
你通常会使用$(parentId).insert(...)。
$(parentId + 'more').insert(...)
在您的具体案例中不会有效吗?
答案 3 :(得分:0)
parentId的值是此<a href="#" onclick="insertChildDiv('more123456')" id="more123456">Replies and more</a>
所在的div的id。我在函数insertChildDiv()中传递了这个parentId的值,以便插入的子div将嵌套在这个父div的div中。
另外,标签id="more123456"
的id将用于将href值更改为隐藏插入的子div的值
谢谢我将重命名元素的id以将第一个字符变成字母。
如果我删除在$()ex中包装parentId的单个qoutes。 $(parentId).insert(ChildComment);
返回的错误是:
$(parentId).insert is not a function
如果我用单引号包装parentId,原型将找不到ID为'parentId'的div将错误$("parentId") is null
答案 4 :(得分:0)
您的原始函数适用于传递给$()...
的参数function insertChildDiv(parentId)
{
var ChildComment = new Element('div', {'class':'padding'});
ChildComment.update('testing');
$(parentId).insert(ChildComment);
}
这是一个测试用例:
答案 5 :(得分:0)