javascript - 将 javascript 分配给特定元素及其子元素

标签 javascript html

我的网站结构如下:

<div class="content">
   <div class="main-content profile1 left">
      <script type="text/javascript">
                $(document).ready(function() {Message.initialMessageList(1);});
      </script>
      <div class="message-menu">
          <div class="message"></div>
      <div>
   </div>
   <div class="main-content profile2 left">
      <script type="text/javascript">
                $(document).ready(function() {Message.initialMessageList(2);});
      </script>
      <div class="message-menu">
          <div class="message"></div>
      <div>
   </div>
</div>

我需要的是在我的消息 javascript 对象中根据传递的配置文件 ID(1 或 2)来引用作为配置文件子级的元素。

即,当传递 1 时,我们应该引用作为 profile1 div 子级的 div 消息菜单,并忽略作为 profile2 子级的消息菜单。

目前的部分 JavaScript:

var Message = {
    searchTimeout: null,

    initialMessageList: function(profile_id) {
        var messageContent = document.getElementsByClassName('main-content profile'+ profile_id);
        var messagelist = messageContent[0].getElementsByClassName('messages-list');

        messagelist[0].innerhtml = '<div class="message-loader"><i class="fa fa-spinner fa-spin"></i></div>';

        Message.fetchMessageList(profile_id,  Message.initialMessageListHandler);
    },

    initialMessageListHandler: function(data, profile_id) {
        $('.messages-list .message-loader').remove();
        $('.messages-list').html(Message.getMessageListHtml(data));
        Message.bindMessageList();
        $('.open-message').first().click();
    },

我真正想要的是为所有函数设置一个全局变量,以知道它们应该引用哪个子元素,而不必在 JavaScript 中不断传递配置文件 ID。

最佳答案

好吧,因为我不知道你的代码应该做什么,只是回答你的主要问题:你可以传递容器,而不是传递 profile_id 。

initialMessageList: function(profile_id) {
    var messageContent = document.getElementsByClassName('main-content profile'+ profile_id)[0];
    messageContent.profile_id = profile_id; //We can keep it just in case:

    var messagelist = messageContent.getElementsByClassName('messages-list');
    messagelist[0].innerhtml = '<div class="message-loader"><i class="fa fa-spinner fa-spin"></i></div>';

    //Message.fetchMessageList(profile_id,  Message.initialMessageListHandler);
    Message.fetchMessageList(messageContent, Message.initialMessageListHandler); //We pass the container instead of the profile_id and have both in the end.
}

关于javascript - 将 javascript 分配给特定元素及其子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30591140/

相关文章:

javascript - 小部件 - 做什么和不做什么

java - 如何使用 Jsoup 判断 HTML 表格是否有空单元格 (&nbsp)?

javascript - 如何在不提交表单的情况下获取输入框的值并将计算出的值放入其他输入框?

javascript - 表达式插值 Javascript

javascript - three.js rectAreaLight 是最新的

html - 重叠的 Div 元素

html - 如何让 w3-cell 不自动调整?

javascript - 触发器在 Jquery 幻灯片中无法正常工作

javascript - 具有多个图像模态的页面在第一个模态之后不加载图像

javascript - 在按键功能上未检测到输入按键