我希望有人可以帮助我使用这个Javascript.
我有一个名为"设置"的对象,我想编写一个向该对象添加新设置的函数.
新设置的名称和值以字符串形式提供.然后,提供设置名称的字符串将下划线拆分为数组.通过使用数组的每个部分给出的名称创建新的嵌套对象,新设置应添加到现有的"设置"对象中,除了最后一部分应该是给出设置值的字符串.然后我应该能够参考设置,例如提醒它的价值.我可以像这样以静态的方式做到这一点......
var Settings = {};
var newSettingName = "Modules_Video_Plugin";
var newSettingValue = "JWPlayer";
var newSettingNameArray = newSettingName.split("_");
Settings[newSettingNameArray[0]] = {};
Settings[newSettingNameArray[0]][newSettingNameArray[1]] = {};
Settings[newSettingNameArray[0]][newSettingNameArray[1]][newSettingNameArray[2]] = newSettingValue;
alert(Settings.Modules.Mediaplayers.Video.Plugin);
Run Code Online (Sandbox Code Playgroud)
...创建嵌套对象的部分正在执行此操作...
Settings["Modules"] = {};
Settings["Modules"]["Video"] = {};
Settings["Modules"]["Video"]["Plugin"] = "JWPlayer";
Run Code Online (Sandbox Code Playgroud)
但是,由于构成设置名称的部分数量可能会有所不同,例如newSettingName可能是"Modules_Floorplan_Image_Src",我想使用诸如...之类的函数动态执行此操作.
createSetting (newSettingNameArray, newSettingValue);
function createSetting(setting, value) {
// code to create new setting goes here
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决如何动态地这样做吗?
我假设在那里必须有一个for循环才能通过数组进行迭代,但是我还没有找到一种方法来创建嵌套对象.
如果你有这么远,非常感谢你花时间阅读,即使你无法帮助.
当使用 Javascript / jQuery 添加额外的 HTML 元素到网页并添加额外的外部 CSS 声明来配合它们时,您需要防止这些元素的 ID 和 CSS 类名称与页面上已有的 ID 和 CSS 类名称发生冲突。例如,您可能已经在页面上的某处拥有类似“outerWrapper”或“nav”的 ID,并且新内容也可能具有相同名称的 ID。
创建要添加到您自己的网页的代码时相对容易。
但是,如果您想提供可在任何第 3 方网站上使用的代码,您无法控制页面上已使用的 ID 和类名,更无法控制将来可能对页面进行哪些更改。
那么,在处理供第三方使用的代码时,避免这些冲突的最佳实践是什么?
到目前为止,我们只是简单地使用 iframe,但这并不理想。
CSS 子选择器可以防止我们添加的 CSS 影响现有元素/类,但它们不会阻止我们的新元素由页面上已有的 CSS 设置样式。
为我们添加的内容的所有 ID 添加前缀(例如使用公司、产品名称或容器名称)是唯一的出路吗?例如,视频播放器 JWPlayer 将容器名称作为其 HTML5 播放器的所有元素 ID 的前缀。
我将不胜感激任何想法。