Javascript 将图元从一个图元移到另一个图元
让我们举个例子:Javascript 将图元从一个图元移到另一个图元,javascript,Javascript,让我们举个例子: <table> <tr class="need"></tr> <tr class="no-need"></tr> // This is ourElement, needs to be removed <tr></tr> // This element needs to be removed <tr class="no-need
<table>
<tr class="need"></tr>
<tr class="no-need"></tr> // This is ourElement, needs to be removed
<tr></tr> // This element needs to be removed
<tr class="no-need"></tr> // This element needs to be removed
<tr class="no-need"></tr> // This element needs to be removed
<tr class="need"></tr> // Elements removed until this
</table>
//这是我们的元素,需要删除
//此元素需要删除
//此元素需要删除
//此元素需要删除
//在此之前,已删除元素
我想一次删除这四个元素
这就是我所做的:
function remove(ourElement) {
var body = ourElement.parentNode,
bodyRows = body.getElementsByTagName('tr');
for (var i = 0; i < bodyRows.length; i++) {
if (bodyRows[i] == ourElement) {
if (!bodyRows[i+1].className) {
body.removeChild(bodyRows[i+1]);
}
}
if (bodyRows[i] > ourElement) {
if (bodyRows[i].className == 'no-need') {
body.removeChild(bodyRows[i]);
}
if (bodyRows[i].className == 'need') {
break;
}
}
}
body.removeChild(ourElement);
}
函数删除(元素){
var body=ourElement.parentNode,
bodyRows=body.getElementsByTagName('tr');
对于(变量i=0;iourElement){
if(bodyRows[i].className==‘无需’){
body.removeChild(bodyRows[i]);
}
if(bodyRows[i].className=='need'){
打破
}
}
}
身体。移除儿童(我们的元素);
}
该函数仅删除ourElement
之后的第一个empy行和ourElement
本身
正如我在上面所写的,我需要在函数第一次运行时删除这四个元素
需要纯Javascript。不能对DOM元素使用
运算符
function remove(ourElement) {
var body = ourElement.parentNode,
bodyRows = body.getElementsByTagName('tr'),
lb = false;
for (var i = 0; i < bodyRows.length; i++) {
lb = (lb)?(bodyRows[i] == ourElement):lb;
if(lb){
if (!bodyRows[i].className) {
body.removeChild(bodyRows[i]);
}else if (bodyRows[i].className == 'no-need') {
body.removeChild(bodyRows[i]);
}else if (bodyRows[i].className == 'need') {
break;
}
}
}
}
函数删除(元素){
var body=ourElement.parentNode,
bodyRows=body.getElementsByTagName('tr'),
lb=假;
对于(变量i=0;i
不能对DOM元素使用
运算符
function remove(ourElement) {
var body = ourElement.parentNode,
bodyRows = body.getElementsByTagName('tr'),
lb = false;
for (var i = 0; i < bodyRows.length; i++) {
lb = (lb)?(bodyRows[i] == ourElement):lb;
if(lb){
if (!bodyRows[i].className) {
body.removeChild(bodyRows[i]);
}else if (bodyRows[i].className == 'no-need') {
body.removeChild(bodyRows[i]);
}else if (bodyRows[i].className == 'need') {
break;
}
}
}
}
函数删除(元素){
var body=ourElement.parentNode,
bodyRows=body.getElementsByTagName('tr'),
lb=假;
对于(变量i=0;i
您需要这样的东西:
function remove(ourElement) {
var body = ourElement.parentNode;
var childRows = body.childNodes;
var found = false;
for (var i = 0; i < childRows.length; i++) {
var row = childRows[i];
if(found) {
if(!row.className || row.className == "no-need") {
body.removeChild(row);
i--; // as the number of element is changed
} else if(row.className == "need") {
break;
}
}
if(row == ourElement) {
body.removeChild(ourElement);
found = true;
i--; // as the number of element is changed
}
}
}
函数删除(元素){
var body=ourElement.parentNode;
var childRows=body.childNodes;
var=false;
对于(变量i=0;i
您需要这样的东西:
function remove(ourElement) {
var body = ourElement.parentNode;
var childRows = body.childNodes;
var found = false;
for (var i = 0; i < childRows.length; i++) {
var row = childRows[i];
if(found) {
if(!row.className || row.className == "no-need") {
body.removeChild(row);
i--; // as the number of element is changed
} else if(row.className == "need") {
break;
}
}
if(row == ourElement) {
body.removeChild(ourElement);
found = true;
i--; // as the number of element is changed
}
}
}
函数删除(元素){
var body=ourElement.parentNode;
var childRows=body.childNodes;
var=false;
对于(变量i=0;i
试试这个,每次移除一个孩子,它都会减少i以补偿:
function remove(ourElement) {
var body = ourElement.parentNode,
bodyRows = body.getElementsByTagName('tr'),
lb = false;
for (var i = 0; i < bodyRows.length; i++) {
if (!lb && bodyRows[i] != ourElement) {
continue;
} else if(bodyRows[i] == ourElement){
lb = true;
}
if (bodyRows[i].className == 'no-need' || !bodyRows[i].className) {
body.removeChild(bodyRows[i]);
i--;
}
}
}
函数删除(元素){
var body=ourElement.parentNode,
bodyRows=body.getElementsByTagName('tr'),
lb=假;
对于(变量i=0;i
试试这个,每次移除一个孩子,它都会减少i以补偿:
function remove(ourElement) {
var body = ourElement.parentNode,
bodyRows = body.getElementsByTagName('tr'),
lb = false;
for (var i = 0; i < bodyRows.length; i++) {
if (!lb && bodyRows[i] != ourElement) {
continue;
} else if(bodyRows[i] == ourElement){
lb = true;
}
if (bodyRows[i].className == 'no-need' || !bodyRows[i].className) {
body.removeChild(bodyRows[i]);
i--;
}
}
}
函数删除(元素){
var body=ourElement.parentNode,
bodyRows=body.getElementsByTagName('tr'),
lb=假;
对于(变量i=0;i
我刚刚意识到您可能正在寻找一个函数来删除边界内的项目,比如:
类“需要”和类“需要”之间的项目,并删除其中的所有项目。如果这是你的问题,答案如下:
function remove( tagElement, boundClass ) {
var tr = document.getElementsByTagName(tagElement),
re = new RegExp("(^|\\s)"+ boundClass +"(\\s|$)"),
bound = false,
r = [];
for( var i=0, len=tr.length; i<len; i++ ) {
if( re.test(tr[i].className) ) {
bound = ( bound === true ) ? false : true;
if(bound) continue;
}
if( bound ) r.push( tr[i] );
}
while( r.length )
r[ r.length - 1 ].parentNode.removeChild( r.pop() );
}
remove( "tr", "need" ); // use it like this
函数删除(tagElement,boundClass){
var tr=document.getElementsByTagName(tagElement),
re=new RegExp(“(^ |\\s)”+boundClass+”(\\s |$)”,
绑定=假,
r=[];
对于(var i=0,len=tr.length;i我刚刚意识到您可能正在寻找一个函数来删除边界内的项,比如:
类“需要”和类“需要”之间的项目,并删除其中的所有项目。如果这是您的问题,答案如下:
function remove( tagElement, boundClass ) {
var tr = document.getElementsByTagName(tagElement),
re = new RegExp("(^|\\s)"+ boundClass +"(\\s|$)"),
bound = false,
r = [];
for( var i=0, len=tr.length; i<len; i++ ) {
if( re.test(tr[i].className) ) {
bound = ( bound === true ) ? false : true;
if(bound) continue;
}
if( bound ) r.push( tr[i] );
}
while( r.length )
r[ r.length - 1 ].parentNode.removeChild( r.pop() );
}
remove( "tr", "need" ); // use it like this
函数删除(tagElement,boundClass){
var tr=document.getElementsByTagName(tagElement),
重新