javascript 怎么动态删除多数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 怎么动态删除多数组相关的知识,希望对你有一定的参考价值。

var arr=new Array("1","2","3");
var arr1=new Array("a","b","c");
用个循环删除这两个数组的 1 到 2 个下标

这个是我做的!
测试通过!!兄弟可以看看!!

<script type="text/javascript">
function test()

Array.prototype.remove=function(n)//n是数组下标,从0开始!

if(isNaN(n)||n>this.length)return false;
for(var i=0,n=0;i<this.length;i++)

if(this[i]!=this[n])

this[n++]=this[i]


this.length-=1


var arr=new Array("a","b","c");
var arr1=new Array("1","2","3");
var arr2=new Array("A","B","C");

var list=new Array(0,1); // 存放下标的数组
alert(\'这是原来的数组:\'+arr+\' 第二组:\'+arr1+\' 第三组:\'+arr2); //原来数组
//alert(list.length);
for(i=0;i<list.length;i++) //删除数组中的元素

//alert(list[i]);
arr.remove(list[i]);
arr1.remove(list[i]);
arr2.remove(list[i]);


alert(\'这是删除后的数组:\' + arr + \' 第二组:\' + arr1 + \' 第三组:\' + arr2);

window.onload = test;
</script>
参考技术A //:)
function test()

var arr=new Array("a","b","c");
var arr1=new Array("1","2","3");
var arr2=new Array("A","B","C");

var list=new Array(0,2); // 存放下标的数组
alert(arr+arr1+arr2); //原来数组

for(i=0;i<list.length;i++) //删除数组中的元素

//alert(list[i]);
arr.remove(list[i]);
arr1.remove(list[i]);
arr2.remove(list[i]);


alert(arr+arr1+arr2);
参考技术B 不用,读数组时从2开始就可以了啊

如何使用 css 和/或 javascript 动态更改样式

【中文标题】如何使用 css 和/或 javascript 动态更改样式【英文标题】:How to dynamic change styles with css and/or javascript 【发布时间】:2019-08-18 09:58:59 【问题描述】:

我有一个按钮,我需要在单击它时更改一些样式。我可能可以通过添加和删除一些类轻松地做到这一点,但是我在页面运行时更改了第一个元素,所以现在我需要从第一个元素中删除样式并将其应用到单击的按钮上,但实际上我没有得到我怎么能使它成为第 n 个孩子(1)的原因。有人可以帮忙吗?

这是我的html:

<tr>
<!-- ko foreach: optionValues -->
<td>
    <input type="radio" id="volt" name="volt"
        data-bind="attr: id: 'CC-prodDetails-' + $data.value, value: $parent.selectedOption">
    <button data-bind="attr: for: 'CC-prodDetails-' + $data.value, text:key, 
                                                click:function(key)
                                                    $parent.selectedOption(key);
                                                    $parent.selectedOptionValue(key);
                                                " class="voltagem"></button>
</td>
<!-- /ko -->

这就是我的 CSS:

input 
  display: none;


.voltagem 
  font-size: 20px;
  border-color: #333;
  border-radius: 10px;
  border-style: dotted;
  margin-left: 25px;
  height: 55px;
  width: 135px;
  background-color: transparent;


.voltagem:focus 
  border-color: blue;
  border-style: solid;
  outline: none;


td:nth-child(1) .voltagem 
  border-color: blue;
  border-style: solid;
  outline: none;

【问题讨论】:

【参考方案1】:

您可以为此使用css 绑定。如果$parent.selectedOption() === key 则将类voltagem 设置为按钮

const model = function() 
  const self = this;
  const options = [  key: "one" ,  key: "two" ,  key: "three" ];
  self.optionValues = ko.observable(options);
  self.selectedOption = ko.observable(options[0].key);


ko.applyBindings(new model)
.voltagem 
  color: red
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<table>
  <tr>
    <!-- ko foreach: optionValues -->
    <td>
      <button data-bind="text: key, 
                         click: function(obj)  $parent.selectedOption(obj.key) ,
                         css:  voltagem: $parent.selectedOption() == key ">
      </button>
    </td>
    <!-- /ko -->
  </tr>
</table>

注意:需要将click绑定函数改为

function(obj) 
  $parent.selectedOption(obj.key)
  $parent.selectedOptionValue(obj.key)

【讨论】:

我试过这个,但没有在我的项目上工作。我收到“错误您不能多次将绑定应用于同一元素” @MateusFernando 出了点问题。这在 sn-p 中运行良好。 也许一些 js/jquery 唯一的解决方案可以帮助我更好地解决这个问题,因为我无法更改 ko 代码...

以上是关于javascript 怎么动态删除多数组的主要内容,如果未能解决你的问题,请参考以下文章

Html 使用 javascript 动态添加和删除行

Html表使用javascript动态添加和删除行[关闭]

Java如何做动态表格?

C#中DataTable动态添加行和删除行的问题?

V8 JavaScript引擎研究高性能探秘

具有O插入和删除的双链表的紧凑多数组实现