2013-03-16 52 views
0

我越來越掛斷瞭如何在元素的id字符串值和元素本身之間來回移動。我相信這個問題涉及語法,但不能正確。我想通過在JavaScript中的一個參數(在這種情況下,「標題」,並把它作爲一個字符串,如下製作標題消失的元素和編輯標題框出現。javascript:捕獲元素名稱和元素的字符串值的語法

HTML

//note this html is actually written to page by another javascript function 
<span id="title">Title</span><span id="titleedit"></span><img src="edit.gif" onclick="editTitle('title');"> 

如果我離開了全能冠軍撇號,我可以把它作爲一個元素在工作,但之後就再沒有作爲一個字符串工作。

的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"; 
} 

感謝SUG孕育着如何完成這兩項任務...使標題消失,標題似乎只傳遞字標題。 (我想通過標題作爲參數的原因,因爲有一大堆其他字段需要編輯,我希望作爲一個參數傳遞給每個字段)。

+0

出現:'element.id'和back:'document.getElementById(idstring)' – Bergi 2013-03-16 15:45:45

回答

2

當您說document.getElementById('fieldedit')時,您說「元素以「fieldedit」作爲id「。你想要的是「與變量fieldedit作爲ID的內容元素

給它一個鏡頭與document.getElementById(fieldedit).innerHTML = editstring;

更新:。

也有這一行的一個問題: 。

var editstring = "<input type="text" name="title" onclick="saveTitle();">save"; 

嘗試逃避你的報價,或者使用單引號和雙引號的混合物,例如:

var editstring = '<input type="text" name="title" onclick="saveTitle();">save'; 

更新2

爲了得到id="title"一個參考要素:

var field = document.getElementById('title'); 

現在是指元素,你可以使用:

field.style.display = 'none'; 

你也可以在一行中完成:

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

你說得對,這是一個錯誤,但我把它寫錯了。更深層的問題是,如果我在發送「標題」時省略了撇號,我不能添加「編輯」,因爲它不是字符串,而是元素本身。 – user1904273 2013-03-16 13:01:34

+0

本身,'title'不是一個元素,即使存在具有該id的元素。所以,你*想*發送'標題'作爲一個字符串(帶撇號)。 – 2013-03-16 13:08:13

+0

是的,抱歉,您發現了另一個錯誤。如果我把標題放在撇號中,我會把標題看作一個字符串。但是,它不允許我將它隱藏爲一個元素,即field.style.display =「none」不計算。那麼我如何才能識別出該字段不是字符串,而是指向元素「標題」。似乎它應該工作,但沒有。 – user1904273 2013-03-16 14:07:21

1

document.getElementById('fieldedit').innerHTML = "editstring";

難道不該

document.getElementById(fieldedit).innerHTML = editstring;

如果我理解了您的問題,您希望獲得id爲「titleedit」的跨度並插入存儲在editstring中的輸入元素。