2014-10-22 54 views
0

我想给用户选项来编辑导航栏的标题。所以,当用户点击编辑时,我想给他们一个文本字段和一个提交按钮。无法通过div ID作为函数参数

下面是代码(PHP块内)

$n1="<div id='nava' class='nav' > 
     <a href=#>$nava</a> 
     <input type='submit' id='nav1' class='b' onclick='edit(this.id,???)' value='Edit'> 
    </div>"; 
$n2="<div id='navb' class='nav' > 
     <a href=#>$navb</a> 
     <input type='submit' id='nav2' class='b' onclick='edit(this.id,???)' value='Edit'> 
    </div>"; 
$n3="<div id='navc' class='nav' > 
     <a href=#>$navc</a> 
     <input type='submit' id='nav3' class='b' onclick='edit(this.id,???)' value='Edit'> 
    </div>"; 

,如果我做编辑(this.id,纳瓦),它给了我对象的DivElement消息,当我做警报。

但我需要div的id作为string.Passing提交按钮的id完美,但我无法弄清楚如何传递相应的div编辑功能的ID。我会怎么做?

+1

也许'(this.parentElement | this.parentNode).id'id' – 2014-10-22 00:42:39

+1

'edit(this.id,'nava')'? – rjdown 2014-10-22 00:42:46

+0

不,我试过以前没有工作 – 2014-10-22 00:44:03

回答

0

parentNode绝对是获得父级Div的ID(不使用像JQuery这样的框架)的正确方法。像这样https://developer.mozilla.org/en/docs/Web/API/Node.parentNode

回到你的榜样,你可以简单地编写JavaScript编辑()函数:你可以阅读更多关于它在这里

function edit(id) { 
    var divId = document.getElementById(id).parentNode.id; 
    console.log(divId); 
} 

使用你的HTML,我已经把一个快速捣鼓你展示如何能工作

http://jsfiddle.net/wj7bch3m/

希望帮助!

+0

Thanks.It工作。 – 2014-10-22 01:21:44

0

你可以做这样的事情来改变不同的资产净值

HTML

<div id="nav"> 
    <a href="#" id="link1">Link</a> 
    <input type="text" for="link1" id="newLink" class="changeNav"/> 
</div> 

jQuery的

$(".changeNav").on("change", function(){ 
    var newLink = $(this).val(); 
    var whichNav = $(this).attr("for"); 
    $("#" + whichNav).empty().append(newLink); 
}); 

这里是一个JSFIDDLE

希望这有助于