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

时间:2014-10-22 00:40:00

标签: 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>";
$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,nava),它会在我发出警报时给出对象DivElement消息。

但是我需要div的id作为string.Passing提交按钮的id工作完美,但我无法弄清楚如何传递相应div的id来编辑函数。我该怎么办?

2 个答案:

答案 0 :(得分:0)

parentNode绝对是获取父Div的id的正确方法(不使用像JQuery这样的框架)。您可以在此处详细了解:https://developer.mozilla.org/en/docs/Web/API/Node.parentNode

回到你的例子,你可以简单地编写一个JavaScript edit()函数:

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

使用您的HTML,我已经为您提供了一个快速的小提示,以展示它是如何工作的

http://jsfiddle.net/wj7bch3m/

希望有所帮助!

答案 1 :(得分: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

希望这有帮助