GVKun编程网logo

AJAX DIV 仅在 JavaScript 中刷新(ajax局部刷新div)

5

针对AJAXDIV仅在JavaScript中刷新和ajax局部刷新div这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展unvalid,OK、CSS:autoheightoncontains

针对AJAX DIV 仅在 JavaScript 中刷新ajax局部刷新div这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展

unvalid,
OK、CSS:auto height on contains div,100%height on background div inside containing div、DIV 重叠 CSS 让 DIV 层叠 两个 DIV 或多个 DIV 顺序重叠加、jquery – 为什么$(“div> div”)的工作方式与$(“div”)不同.child(“div”)?
等相关知识,希望可以帮助到你。

本文目录一览:

AJAX DIV 仅在 JavaScript 中刷新(ajax局部刷新div)

AJAX DIV 仅在 JavaScript 中刷新(ajax局部刷新div)

JQuery 是一个 JavaScript 库,它允许您充分利用 JavaScript 的潜力。 除其他功能外,它还包括用于提交表单的 AJAX。 所以它已经是 JavaScript 代码了。

你也可以去掉 JQuery 函数,把代码和 Javascript 的其余部分放在一起:

function myFunction() {
        var e = document.getElementById("menu");
        var selected = e.options[e.selectedIndex].value;
        // Load data
        document.getElementsByClassName("noselection")[0].style.display = "none";
        var x = document.getElementsByClassName("hideprev"); 
        var i;
        for (i = 0; i < x.length; i++) {
          x[i].style.display = "none";
        }
        document.getElementsByClassName(selected)[0].style.display = "block";
};
select {
  width: 100%;
  padding: 15px;
  display: inline-block;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border: 0;
  color: black;
  background: red;
  outline: none;
  appearance: none;
}

.content {
  min-height: 250px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
  border: solid red 5px;
  padding: 10px;
}

在 HTML 上带有“onchange”功能

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<select id="menu" onchange="myFunction()">
  <optgroup label="2021">
    <option value="January21">January</option>
    <option value="February21">February</option>
    <optgroup label="2020">
      <option value="January20">January</option>
      <option value="February20">February</option>
      <option value="March20">March</option>
      <option value="April20">April</option>
      <option value="May20">May</option>
      <option value="June20">June</option>
      <option value="July20">July</option>
      <option value="August20">August</option>
      <option value="September20">September</option>
      <option value="October20">October</option>
      <option value="November20">November</option>
      <option value="December20">December</option>
</select>
<div>

  <div>You need to make a selection above first</div>
  <div>Content from January 2020</div>
  <div>Content from February 2020</div>
  <div>Content from March 2020</div>
  <div>Content from April 2020</div>
  <div>Content from May 2020</div>
  <div>Content from June 2020</div>
  <div>Content from July 2020</div>
  <div>Content from August 2020</div>
  <div>Content from September 2020</div>
  <div>Content from October 2020</div>
  <div>Content from November 2020</div>
  <div>Content from December 2020</div>
  <div>Content from January 2021</div>
  <div>Content from February 2021</div>

</div>
,

您可以在更新所选选项时添加/删除类。通过 js,您需要添加一个事件侦听器,然后在您的内容 div 上循环。由于显示/隐藏的内容已经在这里,切换一个类来更新显示状态应该就足够了..

见:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

基本可能的例子

let select = document.querySelector("#menu");
let options = document.querySelectorAll(".content>div");

select.addEventListener("change",function() {
// here do something once selected option is changed 

// example looping on a few div and comparing classname to select.value 
  for (i = 0; i < options.length; i++) {
    options[i].classList.remove("showprev");
    if (options[i].classList.contains(this.value)) {
      options[i].classList.add("showprev");
    }
// end loop example     
  }
});
.hideprev {
  display: none;
}

.showprev {
  display: block;
}

/* from your previous post */

select {
  cursor:pointer; /* show it is clickable  */
  width: 100%;
  padding: 15px;
  display: inline-block;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border: 0;
  color: black;
  background: red;
  outline: none;
  appearance: none;
}

.content {
  min-height: 250px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
  border: solid red 5px;
  padding: 10px;
}
<select id="menu">
  <optgroup label="2021">
    <option value="January21">January</option>
    <option value="February21">February</option>
    <optgroup label="2020">
      <option value="January20">January</option>
      <option value="February20">February</option>
      <option value="March20">March</option>
      <option value="April20">April</option>
      <option value="May20">May</option>
      <option value="June20">June</option>
      <option value="July20">July</option>
      <option value="August20">August</option>
      <option value="September20">September</option>
      <option value="October20">October</option>
      <option value="November20">November</option>
      <option value="December20">December</option>
</select>
<div>
  <div>You need to make a selection above first</div>
  <div>Content from January 2020</div>
  <div>Content from February 2020</div>
  <div>Content from March 2020</div>
  <div>Content from April 2020</div>
  <div>Content from May 2020</div>
  <div>Content from June 2020</div>
  <div>Content from July 2020</div>
  <div>Content from August 2020</div>
  <div>Content from September 2020</div>
  <div>Content from October 2020</div>
  <div>Content from November 2020</div>
  <div>Content from December 2020</div>
  <div>Content from January 2021</div>
  <div>Content from February 2021</div>

</div>

ps 无需删除问题并几乎立即重新发布,可能需要几个小时甚至几天才能有人回答。真正的人类在私人生活和最终工作的另一边。

<div /> unvalid, <div></div> OK

unvalid,
OK

<div /> is not a valid markup. A self-closing tag is not permitted.

You need to use the full version <div></div>.

A self closing div tag would make no sense, since it will result in an empty div. An empty div is usually not rendered by most of the browsers.

CSS:auto height on contains div,100%height on background div inside containing div

CSS:auto height on contains div,100%height on background div inside containing div

问题是,我有一个内容div它的容器高度(容器和内容div具有自动高度)。

我想要的背景容器,它是内容div的兄弟div来拉伸填充容器。背景容器包含将背景分成块的div。

背景和容器div具有100%的宽度,内容容器没有。

HTML:

<div id="container">  
    <div id="content">  
        Some long content here ..  
    </div>  
     <div id="backgroundContainer">  
         <div id="someDivToShowABackground"/>  
         <div id="someDivToShowAnotherBackground"/>  
    </div>  
</div>

CSS:

#container {
    height:auto;
    width:100%;
}

#content {
    height: auto;
    width:500px;
    margin-left:auto;
    margin-right:auto;
}

#backgroundContainer {
    height:100%;??? I want this to be the same height as container,but 100% makes it the height of the viewport.
}

解决方法

这个问题有很多解决方案,包括OneTrueLayout技术,虚拟列技术,CSS表格显示技术,还有一个分层技术。

同样高度的列的解决方案是CSS Tabular Display Technique,意味着使用display:table功能。
它适用于Firefox 2,Safari 3,Opera 9和IE8。

CSS表格显示的代码:

HTML

<div id="container">
    <div id="rowWraper">
            <div id="col1">
                Column 1<br />Lorem ipsum<br />ipsum lorem
            </div>
            <div id="col2">
                Column 2<br />Eco cologna duo est!
            </div>
            <div id="col3">
                Column 3
            </div>
        </div>
</div>

CSS

<style>
#container{
    display:table;  
    background-color:#CCC;
    margin:0 auto;
}

.row{
    display:table-row;
}

.col{
    display: table-cell;
}

#col1{
    background-color:#0CC;
    width:200px;
}

#col2{
    background-color:#9F9;
    width:300px;
}

#col3{
    background-color:#699;
    width:200px;
}
</style>

即使表格单元的宽度的自动扩展有问题,也可以通过插入另一个带有表格单元并赋予其固定宽度的div来容易地解决。无论如何,宽度的过度扩展发生在使用极长的单词(我怀疑任何人会使用,比方说,600px长字)或一些div的宽度大于table-cell的宽度的情况下。

Faux Column Technique是最常用的解决这个问题的解决方案,但它有一些缺点,如果你要调整背景平铺图像的大小,如果你想调整列的大小,它也不是一个优雅的解决方案。

OneTrueLayout Technique包括创建一个极大的高度的填充底部,并通过应用具有相同巨大值的负边距底部,将真实边框位置带到“正常逻辑位置”,并隐藏由padding with overflow:hidden应用于内容wraper。一个简化的例子是:

HTML文件:

<html><head>
<style>
.wraper{
    background-color:#CCC;
    overflow:hidden;
}

.floatLeft{
    float:left; 
}

.block{
    padding-bottom:30000px;
    margin-bottom:-30000px;
    width:100px;
    background-color:#06F;
    border:#000 1px solid;
}
</style>
</head>
<body>
    <div>
    <div>first col</div>
        <div>
                Second col<br />Break Line
        </div>
    <div>Third col</div>
</div>
</body>
</html>

分层技术必须是一个非常整洁的解决方案,涉及绝对定位的div与一个主要的相对定位封装器div。它基本上由多个子div和主div组成。主div具有强制位置:相对于它的css属性集合。这个div的孩子都是绝对的位置:绝对的。子项必须将顶部和底部设置为0,并将左右尺寸设置为相互容纳列。例如,如果我们有两个列,一个宽度为100px,另一个为200px,考虑到我们想要左侧的100px和右侧的200px,左列必须有{left:0;右:200px}和右列{left:100px; right:0;}

在我看来,在自动化高度容器中未实现的100%高度是一个主要缺点,W3C应考虑修改此属性。

其他资源:link1,link2,link3,link4,link5 (important)

DIV 重叠 CSS 让 DIV 层叠 两个 DIV 或多个 DIV 顺序重叠加

DIV 重叠 CSS 让 DIV 层叠 两个 DIV 或多个 DIV 顺序重叠加

http://www.divcss5.com/shili/s587.shtml

jquery – 为什么$(“div> div”)的工作方式与$(“div”)不同.child(“div”)?

jquery – 为什么$(“div> div”)的工作方式与$(“div”)不同.child(“div”)?

我有一个奇怪的问题,我不能使用正常的sizzle选择器来正确选择jQuery中的东西:

这两行不是一回事.

ele.children("div.a > div").addClass("badActive");
ele.children("div.b").children("div").addClass("active");

http://jsfiddle.net/wGvEu/1/

解决方法

ele.children(“div.a> div”)选择div,它们都是div.a元素的子元素(来自>组合子)和ele(来自.children()调用).它还暗示ele本身代表div.a元素.

ele.children(“div.b”).children(“div”)选择div.b元素的div,它们本身就是ele的子元素. ele本身可能是任何一种元素,但它必须包含div.b孩子,而div.b孩子需要有div孩子.

正如Felix Kling在上面的评论中所说,你需要使用.find()来搜索所有后代.这适用于您的第一个案例>组合器,如ele.find(“div.a> div”).

今天关于AJAX DIV 仅在 JavaScript 中刷新ajax局部刷新div的介绍到此结束,谢谢您的阅读,有关

unvalid,
OK、CSS:auto height on contains div,100%height on background div inside containing div、DIV 重叠 CSS 让 DIV 层叠 两个 DIV 或多个 DIV 顺序重叠加、jquery – 为什么$(“div> div”)的工作方式与$(“div”)不同.child(“div”)?
等更多相关知识的信息可以在本站进行查询。

本文标签: