两次设置属性,一次是在html中,一次是在jquery中,背后的想法是什么?

巴拿马

我是javascript和jquery的新手,我在看一些代码,发现这到处都很普遍。

<ul class="items">      
<li class="item" aria-controls="item-0" role="tab"> </li>
<li class="item" aria-controls="item-1" role="tab"> </li>
<li class="item" aria-controls="item-2" role="tab"> </li>
</ul>

“ item”类的属性在html中设置,但随后在jquery中再次设置。为什么?

$(".items").find(".item").each(function () {
                    $Item = $(this);
                    $Item.attr("aria-controls", "item-" + (count));
                    $Item.attr("role", "tab");
                    count++;
                    });
基本的

您所看到的实际上不是代码或数据的重复,您在HTML中看到的是运行提供的javascript后的最终呈现。

从本质上讲,您提供的javascript可以找到具有项目类的项目的任何子项,并遍历每个元素。之后,它将更新一些属性以更改角色和aria-controls。这是在多个项目上设置相同属性或通过每次迭代将其附加到单个项目的简单方法(如下所示)。

var count = 0;
$(".test").find("p").each(function () {
  $Item = $(this);
  $Item.attr("id", "child" + count);
  $Item.attr("class", "extended-child");
  count++;
 });
.extended-child {
    color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">
  <p>Hello</p>
  <p>World</p>
</div>

例如,在上面的示例中,在遍历和p个子元素之后,将更新该类以使文本变为红色,并设置ID。您会发现最初没有课程,但是在应用了课程之后。但是,如果要在浏览器中进行检查,则会看到:

<div class="test">
   <p class="extended-child" id="child0">Hello</p>
   <p class="extended-child" id="child1">World</p>
</div>


但是,如您所见,这并不是最初添加的HTML。

编辑

下面是上述内容的副本,但我将再次更新HTML。3秒钟后,课程将更新,更改文本颜色。

var count = 0;
$(".test").find("p").each(function () {
  $Item = $(this);
  $Item.attr("id", "child" + count);
  $Item.attr("class", "extended-child");
  count++;
 });
 
 setTimeout(function(){
 $(".test").find("p").each(function () {
  $Item = $(this);
  $Item.attr("class", "extended-child-two");
 })
 }, 3000)
.extended-child {
    color: red;
}

.extended-child-two {
    color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">
  <p>Hello</p>
  <p>World</p>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Foreach 在一次迭代中重复两次

为什么一次只调用一次,TextViews中的文本会更改两次?

UIGestureRecognizers,用于在xib中设置一次和两次点击

为什么apache匹配String两次而不是在RewriteRule中匹配一次?

jQuery中的键盘导航:两次按而不是一次

save()被调用一次,但是第一次在猫鼬中执行两次

为什么在我的rebase操作中只发生一次提交而不发生两次冲突?

反转链表的前K个节点,为什么递归在最后一次迭代中执行两次

在我的 xunit 测试中,为什么这个运行一次的代码运行了两次?

为什么我第一次打开Activity时onCreate在我的Fragment中调用了两次

尽管我使用XMLHttpRequest在JavaScript中调用了一次,但为什么api响应两次?

jQuery ajax成功响应中的调用函数只能工作一次,但不能工作两次

在MySQL表中仅计票一次或两次

React Native在Apple中两次显示文本,在Android中一次显示

如果需要两次,则仅在列表理解中执行一次函数调用

在一次练习中,用凌空抽打API两次。

ggplot2中的堆叠barplot:一次打印标签,而不是两次

从一次调用中获取两次 Firebase 数据

显示函数中的代码运行两次,一次在提交之前和之后

在页面中两次渲染一次chart.js组件

在两次(每次foreach中)之间检查一次(用户输入的)时间

窗口滚动始终在IE8中调用两次,而不是一次

单击一次按钮时,代码在 firebase onDatachange 中执行两次

数据在第一次迭代中打印两次

“ git remote -v”显示(获取)和(推送)两次,一次用于“ github”,一次用于“ origin”是什么意思?

jQuery只在数组中设置一次值

熊猫applymap循环两次,一次应用?

两次异步操作,一次超时

PDF 保存两次而不是一次