Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:捕获元素名和元素的字符串值的语法_Javascript_Syntax - Fatal编程技术网

javascript:捕获元素名和元素的字符串值的语法

javascript:捕获元素名和元素的字符串值的语法,javascript,syntax,Javascript,Syntax,我被如何在元素id的字符串值和元素本身之间来回切换所困扰。我相信这个问题涉及到语法,但无法正确处理。我想在javascript中传递一个参数(在本例中为“title”),并将其用作字符串和元素,如下所示,以使标题消失并显示编辑标题框 html //注意,此html实际上是由另一个javascript函数写入页面的 标题 若我在标题周围省去了撇号,我可以让它在下面作为一个元素使用,但它不能作为字符串使用 javascript function editTitle(field) { //using

我被如何在元素id的字符串值和元素本身之间来回切换所困扰。我相信这个问题涉及到语法,但无法正确处理。我想在javascript中传递一个参数(在本例中为“title”),并将其用作字符串和元素,如下所示,以使标题消失并显示编辑标题框

html

//注意,此html实际上是由另一个javascript函数写入页面的
标题
若我在标题周围省去了撇号,我可以让它在下面作为一个元素使用,但它不能作为字符串使用

javascript

function editTitle(field) {
//using field as string only works if parameter in above is in apostrophes
var fieldedit = field+"edit"
var editstring = '<input type="text" name="title" onclick="saveTitle();">save';
document.getElementById('fieldedit').innerHTML = "editstring";
//using as element only works if above has no apostrophes
field.style.display="none";
}
函数编辑标题(字段){
//仅当上面的参数为撇号时,将字段用作字符串才有效
变量fieldedit=字段+编辑
var editstring='save';
document.getElementById('fieldedit').innerHTML=“editstring”;
//仅当上面没有撇号时,“用作元素”才有效
field.style.display=“无”;
}

感谢您建议如何完成这两项任务…使title消失,titleedit只传递单词title。(我之所以要传递title作为参数,是因为还有一大堆其他字段要编辑,我希望每个字段传递一个参数。)

当您说
document.getElementById('fieldedit'))
,您说的是“id为“fieldedit”的元素”。您想要的是“id为变量fieldedit内容的元素”

使用
document.getElementById(fieldedit.innerHTML=editstring;
对其进行拍摄

更新

这一行还有一个问题:

var editstring = "<input type="text" name="title" onclick="saveTitle();">save";
现在该字段引用了该元素,您可以使用:

field.style.display = 'none';
您也可以在一行中完成这一切:

document.getElementById('title').style.display = 'none';

当你说
document.getElementById('fieldedit')
时,你说的是“id为“fieldedit”的元素”。你想要的是“id为变量fieldedit的内容的元素”

使用
document.getElementById(fieldedit.innerHTML=editstring;
对其进行拍摄

更新

这一行还有一个问题:

var editstring = "<input type="text" name="title" onclick="saveTitle();">save";
现在该字段引用了该元素,您可以使用:

field.style.display = 'none';
您也可以在一行中完成这一切:

document.getElementById('title').style.display = 'none';

document.getElementById('fieldedit').innerHTML=“editstring”

难道不是吗


document.getElementById(fieldedit).innerHTML=editstring;


如果我理解您的问题,您希望获得id为“titleedit”的范围,并插入存储在
editstring
中的输入元素。

document.getElementById('fieldedit')。innerHTML=“editstring”

难道不是吗


document.getElementById(fieldedit).innerHTML=editstring;


如果我理解您的问题,您希望获得id为“titleedit”的span,并插入存储在
editstring
中的输入元素。

您是对的,这是一个错误,但我写错了。更深层次的问题是,如果我在发送“title”时省略了撇号,我就无法添加“edit”因为它不是字符串而是元素本身。就其本身而言,
title
不是元素,即使存在具有该id的元素。因此,您确实希望将“title”作为字符串发送(带撇号)。是的,抱歉,您发现了另一个错误。如果我将标题放在撇号中,我会将标题作为字符串获取。但是它不允许我将其作为元素隐藏,即field.style.display=“none”不计算。那么如何让它识别该字段不是字符串,而是指元素“title”。似乎它应该可以工作,但没有。更新2应该可以回答您的问题。最终起作用的是document.getElementById(fieldedit)。style.display='none';其中fieldedit是从var fieldedit=field+“dit”创建的变量(因此没有撇号);谢谢!你是对的,这是一个错误,但我写错了。更深层次的问题是,如果我在发送“title”时省略了撇号,我就无法在其中添加“edit”,因为它不是字符串,而是元素本身。就其本身而言,
title
不是元素,即使存在具有该id的元素。因此,您确实希望将“title”作为字符串发送吗(带撇号)。是的,很抱歉,您发现了另一个错误。如果我将标题放在撇号中,我会将标题作为字符串获取。但是它不允许我将其作为元素隐藏,即field.style.display=“none”不计算。那么我如何让它识别该字段不是字符串,而是指元素“title”。似乎它应该可以工作,但没有。更新2应该可以回答您的问题。最终起作用的是document.getElementById(fieldedit)。style.display='none';其中fieldedit是从var fieldedit=field+“dit”创建的变量(因此没有撇号);谢谢!出发:
element.id
返回:
document.getElementById(idstring)
出发:
element.id
返回:
document.getElementById(idstring)