Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在克隆时更改Typescript中内部HTML属性的id_Javascript_Angularjs_Typescript - Fatal编程技术网

Javascript 如何在克隆时更改Typescript中内部HTML属性的id

Javascript 如何在克隆时更改Typescript中内部HTML属性的id,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我有accordion,我正在使用Typescript克隆它,现在我被困在如何更改内部html div属性的id上 public clone(): any { for (let i = 0; i < 2; i++) { this.linkTag = "#collapse" + this.cloneCount; this.collapseCount = "collapse" + this.cloneCount; var cloneObj

我有accordion,我正在使用Typescript克隆它,现在我被困在如何更改内部html div属性的id上

public clone(): any {
    for (let i = 0; i < 2; i++) {
        this.linkTag = "#collapse" + this.cloneCount;
        this.collapseCount = "collapse" + this.cloneCount;
        var cloneObj = <HTMLElement>document.getElementById('clonedRow');
        //var cloneDone = angular.copy(cloneObj);   
        var cloneDone = cloneObj.cloneNode(true); 
        var hrefCount = this.linkTag;
        var clonedRowId = "clonedRow" + this.cloneCount;
        var cloneAccordionToggleID = "accordionToggleID" + this.cloneCount;
        //I want something like this in typescript
        //jQuery("#"+clonedRowId).find('.accordion-toggle').attr('href', this.linkTag).parents('.php').find('.panel-collapse').attr('id', this.collapseCount);

        document.getElementById('doClone').appendChild(cloneDone);
        this.cloneCount++;
    }
}
public clone():任意{
for(设i=0;i<2;i++){
this.linkTag=“#collapse”+this.cloneCount;
this.collapseCount=“collapse”+this.cloneCount;
var cloneObj=document.getElementById('clonedRow');
//var cloneDone=angular.copy(cloneObj);
var cloneDone=cloneObj.cloneNode(真);
var hrefCount=this.linkTag;
var clonedRowId=“clonedRow”+this.cloneCount;
var cloneaccordinoggleid=“accordionToggleID”+this.cloneCount;
//我想要像这样的打字稿
//jQuery(“#”+clonedRowId).find('.accordion toggle').attr('href',this.linkTag').parents('.php').find('.panel collapse').attr('id',this.collapseCount));
document.getElementById('doClone').appendChild(cloneDone);
这个.cloneCount++;
}
}

请共享一个包含相关代码的Plunkr链接。我已经给出了相关的问题代码。克隆元素时,您应该问问自己是否真的需要
id
属性值。如果您只是删除这些元素,然后按它们的公共类名访问元素(这会产生一个节点列表),然后从中获取第n个元素,这会更容易。如果您真的在使用angularjs(从您提供的代码中看不明显),那么这段代码几乎违背了angularjs设计的所有原则。使用angularjs的全部目的是允许框架管理您的数据和DOM之间的交互,这样您只有在没有其他选择时才需要修改DOM。@trincot是的,我需要在克隆手风琴时更改ID,其中id应该不同,以便href id和collapse/expand div id应该相应地匹配