Javascript 如何传递变量';原型内部的价值';s$()实用方法?
我希望parentId的值在行中的$()中Javascript 如何传递变量';原型内部的价值';s$()实用方法?,javascript,methods,prototypejs,utility,Javascript,Methods,Prototypejs,Utility,我希望parentId的值在行中的$()中 function insertChildDiv(parentId) { var ChildComment = new Element('div', {'class':'padding'}); ChildComment.update('testing'); $().insert(ChildComment); } 我已经试过了 $().insert(ChildComment); 但它将parentId求值为字符串,并正在查找元素id为“pa
function insertChildDiv(parentId)
{
var ChildComment = new Element('div', {'class':'padding'});
ChildComment.update('testing');
$().insert(ChildComment);
}
我已经试过了
$().insert(ChildComment);
但它将parentId求值为字符串,并正在查找元素id为“parentId”的div,因此错误为$(“parentId”)为null
也试过
$('parentId').insert(ChildComment);
但是它返回的错误是“$(parentId)。insert不是一个函数”
顺便说一句,这个html调用脚本
$(parentId).insert(ChildComment);
您应该使用$(parentId)。通常插入(…)
插入(…)在您的特定情况下不起作用吗?您通常会使用$(parentId).插入(…)
插入(…)在您的特定情况下不起作用?$()接受字符串或DOM元素作为参数
编辑以反映原始Q中的编辑
$(parentId)将在id有效的情况下工作
传递给函数的id是“123456”,您要查找的id是“123456more”。此外,您要传递的是一个整数(123456),而不是字符串。无论如何,因为它们不匹配,prototype找不到它。
此外,id不应该以数字开头:IE8将失败,因为w3c规范说id属性不能以数字开头(如果我没记错的话)
尝试将html更改为
<a href="#" onclick="insertChildDiv(123456)" id="123456more">Replies and more</a>
它应该可以工作,$()接受字符串或DOM元素作为参数
编辑以反映原始Q中的编辑
$(parentId)将在id有效的情况下工作
传递给函数的id是“123456”,您要查找的id是“123456more”。此外,您要传递的是一个整数(123456),而不是字符串。无论如何,因为它们不匹配,prototype找不到它。
此外,id不应该以数字开头:IE8将失败,因为w3c规范说id属性不能以数字开头(如果我没记错的话)
尝试将html更改为
<a href="#" onclick="insertChildDiv(123456)" id="123456more">Replies and more</a>
而且它应该工作parentId的值是该
所在div的id。我在函数insertChildDiv()中传递了这个parentId的值,因此插入的子div将嵌套在此父div中。
此外,标签的id将用于将href值更改为隐藏插入的子div的值
谢谢,我将重命名元素的ID,使第一个字符变成字母
如果我删除将parentId包装在$()ex.$(parentId).insert(ChildComment)中的单个qout代码>返回的错误为:
<a href="#" onclick="insertChildDiv('more123456')" id="more123456">Replies and more</a>
如果我将parentId用单引号括起来,prototype将找不到id为“parentId”的div。错误将是$(“parentId”)为null
parentId的值是该
所在div的id。我在函数insertChildDiv()中传递了这个parentId的值,因此插入的子div将嵌套在此父div中。
此外,标签的id将用于将href值更改为隐藏插入的子div的值
谢谢,我将重命名元素的ID,使第一个字符变成字母
如果我删除将parentId包装在$()ex.$(parentId).insert(ChildComment)中的单个qout代码>返回的错误为:
<a href="#" onclick="insertChildDiv('more123456')" id="more123456">Replies and more</a>
如果我将parentId用单引号括起来,prototype将找不到id为“parentId”的div。错误将是$(“parentId”)为null。“this”指的是元素本身,所以将元素引用传递给函数,而不是字符串
$(parentId).insert is not a function
###
函数insertChildDiv(元素){
$(element).insert(新元素('div',{'class':'padding'}).update('testing'))
}
//或者,如果要添加ID:
函数insertChildDiv(元素){
$(element).insert(新元素('div',{'class':'padding',id:'more'+element.id})。更新('testing'))
}
这将有助于营救。“this”指的是元素本身,所以将元素引用传递给函数,而不是字符串
$(parentId).insert is not a function
###
函数insertChildDiv(元素){
$(element).insert(新元素('div',{'class':'padding'}).update('testing'))
}
//或者,如果要添加ID:
函数insertChildDiv(元素){
$(element).insert(新元素('div',{'class':'padding',id:'more'+element.id})。更新('testing'))
}
原始函数与传入$()的参数一起工作
下面是一个测试用例:
原始函数与传入$()的参数一起工作
下面是一个测试用例:
哇,非常感谢大家!
现在它起作用了。
为了其他可能遇到同样情况的人的利益,我认为发生了以下情况:
不要将数字仅用作元素的ID(即使“ID”一词暗示它应该是一个数字)。是的,如果您确实需要该ID上的数字,请在ID的开头包含一个字母。我现在使用的ID是ID=“parent123456”哇,非常感谢大家!
现在它起作用了。
为了其他可能遇到同样情况的人的利益,我认为发生了以下情况:
不要仅将数字用作元素的ID(即使单词“ID”表示它应该是一个数字)。是的,如果您确实需要该ID上的数字,请在ID的开头包含一个字母。我现在使用的ID是ID=“parent123456”很接近,但要获得Prototype提供的“insert”方法,您必须通过$()函数传递元素:$(element.insert(…)+1无论如何,使用提供的对象引用而不是用字符串查找它。是的,你是对的,Joel。元素需要在此上下文中扩展为$(element)。很接近,但要获得Prototype提供的“insert”方法,必须通过$()函数传递元素:$(element)。insert(…)+1无论如何,用于使用提供的对象引用,而不是使用字符串进行查找。是的,您是cor