Javascript 无法将div ID作为函数参数传递

Javascript 无法将div ID作为函数参数传递,javascript,php,html,Javascript,Php,Html,我想为用户提供编辑导航栏标题的选项。所以,当用户单击编辑时,我想给他们一个文本字段和一个提交按钮 下面是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&g

我想为用户提供编辑导航栏标题的选项。所以,当用户单击编辑时,我想给他们一个文本字段和一个提交按钮

下面是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>";
如果我执行editthis.id,nava,当我发出警报时,它会给我object DivElement消息

但是我需要div的id作为字符串。传递submit按钮的id非常有效,但是我不知道如何将相应div的id传递给edit函数。我该怎么做

parentNode绝对是获取父Div id的正确方法,而无需使用JQuery之类的框架。您可以在此处阅读更多信息:

回到您的示例,您可以简单地编写如下JavaScript编辑函数:

function edit(id) {
    var divId = document.getElementById(id).parentNode.id;
    console.log(divId);
}
使用您的HTML,我为您准备了一个快速提琴,向您展示这是如何工作的


希望有帮助

您可以这样做来更改不同的导航

html

这是一个


希望这有帮助

可能是this.parentElement | this.parentNode.ideditthis.id,'nava'?不,我以前试过。不工作。当我发出警报时,它会给我对象DivElement消息。但我需要div的id作为string@KingKing你能解释一下如何在我的案例中使用这个吗?我不知道parentNode
<div id="nav">
    <a href="#" id="link1">Link</a>
    <input type="text" for="link1" id="newLink" class="changeNav"/>
</div>
$(".changeNav").on("change", function(){
    var newLink = $(this).val();
    var whichNav = $(this).attr("for");
    $("#" + whichNav).empty().append(newLink);
});