我正在尝试制作一个用于添加和删除标签的小标签列表doohickey。我有一个文本框,用户可以在其中输入标签,并用逗号分隔。和一个添加按钮。我想当用户单击添加按钮以在框下方的div内部添加一个小div时使用。小div应该包含标记和一个小x,以便以后删除标记。这是我的继承人:

<script type='text/javascript'>
  function tagsremove(tag) {
    document.getElementByName('tags').value.replace('/'+tag+'\,\s/', '');
  }

  $('#tagbutton').click(function(){
    var tags = $('#tagsbox').text().split(", ");
    for (var tag in tags) {
      document.getElementByName('tags').value += tag +", ";
      $('#curtags').append("<div class='tag'>"
        + tag
        + " <a href='#' onlclick='tagsremove(\'"
        + tag
        + "\');$(this).hide();'>x</a></div>")
    }
  });
</script>

<div class='statbox'>
  <form method='post' action='post.php' id='writeform'>
    <p class='subtitle'>Title</p>
    <input type='text' name='title' id='titlebox' /><br />
    <p class='subtitle'>Body</p>
    <textarea id='postbox' name='body' rows='10'></textarea><br />
    <p class='subtitle'>Tags</p>
    <input type='text' id='tagsbox' /><input type='button' id='tagbutton'
      value='Add' />
    <p class='subsubtitle'>Seperate by commas
      (eg. "programming, work, job")</p>
    <div class='subsubtitle' id='curtags'>Current Tags:</div>
    <input type='hidden' value='' name='tags' />
  </form>
</div>


我遇到的问题是,当我单击添加按钮时,什么也没有发生。我想解决这个问题。

最佳答案

您的代码中有一些问题:

1)document.getElementByName('tags')

该函数不存在,您尝试使用的函数是getElementsByName(注意's'),但是由于使用的是jQuery,因此可以使用类似以下的选择器:

 var hiddenTags = $('input[name=tags]');


2)您使用text(),而不是val()作为@Blair

3)在foreach中,您只能访问元素索引,要访问实际的元素值,您必须执行以下操作:

for (var i in tags) {
    var tag = tags[i];
}


会有更多工作要做,但是首先请检查我的更正here

07-24 09:36
查看更多