从javascript函数向summernote插入文本

时间:2017-11-15 21:10:01

标签: javascript jquery summernote

所以我一直在尝试在普通的javascript函数中将文本插入summernote。我有一个值列表,单击时应将其自身附加到实际文本区域。这些函数正在触发,因为我点击时会将消息记录到控制台,但由于某种原因,仍然没有任何附加消息。这是功能:

function appendListItem(ele){
    console.log("Clicked!");
    var id = $(ele).attr("id");
    console.log(typeof(id));
    console.log("ID:" + id);
    //var htmlStr = "<p>#"+id+"</p>";
    $(".summernote").summernote('code', id);
    console.log($("#summernote").summernote('code'));
}

除第7行外,一切正常,$(“。summernote”)。summernote('code',id);.我也试过在summernote函数中使用'insertText'。 id是一个字符串。我已经尝试传入一个html字符串,如注释掉的行(第6行)所示。非常感谢您给予我的任何帮助!

编辑1:

这是我要求的html:

<body>
    <div><img src="./images/Logo.png" alt="Logo"  class="logo-center"></div>
    <div id="summernote"></div>
    <div class="checkList">
        <p id="checkTitle">CHECKLIST (<span id="fraction">0/5</span>)</p>
        <ul class="list-group" id="trigList">
            <li class='list-group-item'><a id='mood' onclick='appendListItem(this)'>Mood</a></li>
            <li class='list-group-item'><a id='phone' onclick='appendListItem(this)'>Phone</a></li>
            <li class='list-group-item'><a id='email' onclick='appendListItem(this)'>Email</a></li>
            <li class='list-group-item'><a id='lead' onclick='appendListItem(this)'>Lead</a></li>
        </ul>
    </div>
    <div><button type="button" class="btn btn-primary" onclick="logNote();">Log Note</button></div>
</body>

1 个答案:

答案 0 :(得分:1)

看起来你混淆了jQuery选择器。您有1个Summernote,因此您可以使用其ID id="summernote"

来访问它

你目前在做什么,使用这一行$(".summernote").summernote('code', id); - 告诉jQuery由于summernote而获得<{>> .的所有元素选择器在开头。

html中的任何元素都没有summernote,所以这就是它无效的原因。

$(".summernote").summernote('code', id);更改为$("#summernote").summernote('code', id);,它应该有效。 #将获得id="summernote"元素,这是您实际的Summernote元素。

这是一个完整的工作示例

<body>
    <div><img src="./images/Logo.png" alt="Logo"  class="logo-center"></div>
    <div id="summernote"></div>
    <div class="checkList">
        <p id="checkTitle">CHECKLIST (<span id="fraction">0/5</span>)</p>
        <ul class="list-group" id="trigList">
            <li class='list-group-item'><a id='mood' onclick='appendListItem(this)'>Mood</a></li>
            <li class='list-group-item'><a id='phone' onclick='appendListItem(this)'>Phone</a></li>
            <li class='list-group-item'><a id='email' onclick='appendListItem(this)'>Email</a></li>
            <li class='list-group-item'><a id='lead' onclick='appendListItem(this)'>Lead</a></li>
        </ul>
    </div>
    <div><button type="button" class="btn btn-primary" onclick="logNote();">Log Note</button></div>
  <script>
    $(document).ready(function() {
      $('#summernote').summernote();
    });
    function appendListItem(elem) {
      //var htmlStr = "<p>#"+id+"</p>";
      var id = $(elem).attr("id");
      console.log(id);
      $("#summernote").summernote('code', id);
      // use 'insertText' instead of 'code' to append the id instead
    }
  </script>
</body>