javascript如何在页面中的不同位置插入新元素

时间:2018-03-22 19:03:57

标签: javascript html function google-chrome-extension insert

我正在编写一个Chrome扩展程序,它会将帮助文本说明/提醒添加到"新订单中的特定位置"我们在工作中使用的形式。我对编码非常陌生(基本上使用这个项目作为一种学习方式)。我创造了一些有效的东西 - 但我确信这是一个更优雅的解决方案,而我却无法弄明白。

var helpText = "this is the message"
var customAlert = makeAlert(helpText)   //create html container for msg

function makerAlert(helpText){...}   //createElem, add class/style, append children

我没关系(上图)。但是我应该在对象中存储每条消息的信息吗?为什么会这样?会有什么信息?

function alertPlacer(customAlert){
    var par = document.getElementsByClassName("class-name")[i];
    var sib = par.childNodes[j];
    par.insertBefore(customAlert, sib);
};

真的在这一点上挣扎(上图)。我实际上已经为每条消息制作了alertPlacer()函数,因为我无法弄清楚如何创建一个将采用不同类名和函数的函数。索引参数。我应该更多地打破这个吗?如果我将这些信息存储在一个对象中,这会有用吗?

相关信息:

  • 因为目标位置表单中,所以几乎没有任何内容具有" id"属性。所以我必须使用getElementsByClassName&索引。
  • 对于每条消息,我知道目标父类名称&索引和子节点索引到"插入"。
  • 我想坚持使用仅限javascript的解决方案。

1 个答案:

答案 0 :(得分:0)

函数可以带有多个参数:

function alertPlacer(customAlert,className,parIndex,childIndex){ 
    var par = document.getElementsByClassName(className)[parIndex]; var sib = par.childNodes[childIndex];      
    par.insertBefore(customAlert, sib); 
};

你打电话给你的功能

alertPlacer(yourAlert,"class-name",6,9);