Javascript中具有相同Id的多个元素
我有一个例子,一个html文件包含多个具有相同ID名称的元素Javascript中具有相同Id的多个元素,javascript,Javascript,我有一个例子,一个html文件包含多个具有相同ID名称的元素 表行包含5列,其中我需要考虑2、3、4、5列数据。 <tr id='total_row'> <td>Total</td> <td>%(count)s</td> <td>%(Pass)s</td> <td>%(fail)s</td> <td>%(error)s</td>
表行包含5列,其中我需要考虑2、3、4、5列数据。
<tr id='total_row'>
<td>Total</td>
<td>%(count)s</td>
<td>%(Pass)s</td>
<td>%(fail)s</td>
<td>%(error)s</td>
<td> </td>
</tr>
全部的
%(计数)s
%(通过)s
%(失败)s
%(错误)s
我在文件的几个地方都有上面的代码。我需要使用javascript添加相应的值 Id应该是唯一的,如果使用相同的Id,javascript代码只引用第一个元素。但如果您仍想使用相同的id,则可以尝试以下代码:
$(function(){
$('[id="total_row"]').each(function(){//run for every element having 'total_row' id
var $this = $(this);
$this.find('td').eq(1).text() //to get second column data
$this.find('td').eq(1).text('dummy text') //to set second column data
});
});
Id应该是唯一的,如果使用相同的Id,javascript代码只引用第一个元素。但如果您仍想使用相同的id,则可以尝试以下代码:
$(function(){
$('[id="total_row"]').each(function(){//run for every element having 'total_row' id
var $this = $(this);
$this.find('td').eq(1).text() //to get second column data
$this.find('td').eq(1).text('dummy text') //to set second column data
});
});
Id应该是唯一的,如果使用相同的Id,javascript代码只引用第一个元素。但如果您仍想使用相同的id,则可以尝试以下代码:
$(function(){
$('[id="total_row"]').each(function(){//run for every element having 'total_row' id
var $this = $(this);
$this.find('td').eq(1).text() //to get second column data
$this.find('td').eq(1).text('dummy text') //to set second column data
});
});
Id应该是唯一的,如果使用相同的Id,javascript代码只引用第一个元素。但如果您仍想使用相同的id,则可以尝试以下代码:
$(function(){
$('[id="total_row"]').each(function(){//run for every element having 'total_row' id
var $this = $(this);
$this.find('td').eq(1).text() //to get second column data
$this.find('td').eq(1).text('dummy text') //to set second column data
});
});
ID
在html页面中是唯一的。你可以称它为ID
,也可以称它为wrt页面。在一个页面中,两个不同的标签不能有相同的ID
。但是您可以使用class
代替andID
。你知道吗
所以你的HTML可以是
<tr class='total_row'>
<td>Total</td>
<td>%(count)s</td>
<td>%(Pass)s</td>
<td>%(fail)s</td>
<td>%(error)s</td>
<td> </td>
</tr>
全部的
%(计数)s
%(通过)s
%(失败)s
%(错误)s
以jquery为例,您可以执行如下操作:
<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<table>
<tr class="one">
<td></td>
<td></td>
</tr>
<tr class="one">
<td></td>
<td></td>
</tr>
<tr class="one">
<td></td>
<td></td>
</tr>
</table>
<script src="jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function() {
$(".one").eq(0).find('td').eq(0).html("I'm tracked");
// get 1st tr and get first td
$(".one").eq(1).find('td').eq(1).html("I'm tracked");
// get 2nd tr and get second td
$(".one").eq(2).find('td').eq(0).html("I'm tracked");
// get 3rd tr and get first td
});
</script>
</body>
</html>
$(文档).ready(函数(){
$(.one”).eq(0.find('td').eq(0.html(“我被跟踪”);
//获得第一个tr和第一个td
$(“.one”).eq(1).find('td').eq(1).html(“我被跟踪”);
//获得第二个tr和第二个td
$(“.one”).eq(2).find('td').eq(0).html(“我被跟踪”);
//获得第三个tr和第一个td
});
但是我想这种方法可能会很乏味。ID在html页面中是唯一的。你可以称它为
ID
,也可以称它为wrt页面。在一个页面中,两个不同的标签不能有相同的ID
。但是您可以使用class
代替andID
。你知道吗
所以你的HTML可以是
<tr class='total_row'>
<td>Total</td>
<td>%(count)s</td>
<td>%(Pass)s</td>
<td>%(fail)s</td>
<td>%(error)s</td>
<td> </td>
</tr>
全部的
%(计数)s
%(通过)s
%(失败)s
%(错误)s
以jquery为例,您可以执行如下操作:
<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<table>
<tr class="one">
<td></td>
<td></td>
</tr>
<tr class="one">
<td></td>
<td></td>
</tr>
<tr class="one">
<td></td>
<td></td>
</tr>
</table>
<script src="jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function() {
$(".one").eq(0).find('td').eq(0).html("I'm tracked");
// get 1st tr and get first td
$(".one").eq(1).find('td').eq(1).html("I'm tracked");
// get 2nd tr and get second td
$(".one").eq(2).find('td').eq(0).html("I'm tracked");
// get 3rd tr and get first td
});
</script>
</body>
</html>
$(文档).ready(函数(){
$(.one”).eq(0.find('td').eq(0.html(“我被跟踪”);
//获得第一个tr和第一个td
$(“.one”).eq(1).find('td').eq(1).html(“我被跟踪”);
//获得第二个tr和第二个td
$(“.one”).eq(2).find('td').eq(0).html(“我被跟踪”);
//获得第三个tr和第一个td
});
但是我想这种方法可能会很乏味。ID在html页面中是唯一的。你可以称它为
ID
,也可以称它为wrt页面。在一个页面中,两个不同的标签不能有相同的ID
。但是您可以使用class
代替andID
。你知道吗
所以你的HTML可以是
<tr class='total_row'>
<td>Total</td>
<td>%(count)s</td>
<td>%(Pass)s</td>
<td>%(fail)s</td>
<td>%(error)s</td>
<td> </td>
</tr>
全部的
%(计数)s
%(通过)s
%(失败)s
%(错误)s
以jquery为例,您可以执行如下操作:
<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<table>
<tr class="one">
<td></td>
<td></td>
</tr>
<tr class="one">
<td></td>
<td></td>
</tr>
<tr class="one">
<td></td>
<td></td>
</tr>
</table>
<script src="jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function() {
$(".one").eq(0).find('td').eq(0).html("I'm tracked");
// get 1st tr and get first td
$(".one").eq(1).find('td').eq(1).html("I'm tracked");
// get 2nd tr and get second td
$(".one").eq(2).find('td').eq(0).html("I'm tracked");
// get 3rd tr and get first td
});
</script>
</body>
</html>
$(文档).ready(函数(){
$(.one”).eq(0.find('td').eq(0.html(“我被跟踪”);
//获得第一个tr和第一个td
$(“.one”).eq(1).find('td').eq(1).html(“我被跟踪”);
//获得第二个tr和第二个td
$(“.one”).eq(2).find('td').eq(0).html(“我被跟踪”);
//获得第三个tr和第一个td
});
但是我想这种方法可能会很乏味。ID在html页面中是唯一的。你可以称它为
ID
,也可以称它为wrt页面。在一个页面中,两个不同的标签不能有相同的ID
。但是您可以使用class
代替andID
。你知道吗
所以你的HTML可以是
<tr class='total_row'>
<td>Total</td>
<td>%(count)s</td>
<td>%(Pass)s</td>
<td>%(fail)s</td>
<td>%(error)s</td>
<td> </td>
</tr>
全部的
%(计数)s
%(通过)s
%(失败)s
%(错误)s
以jquery为例,您可以执行如下操作:
<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<table>
<tr class="one">
<td></td>
<td></td>
</tr>
<tr class="one">
<td></td>
<td></td>
</tr>
<tr class="one">
<td></td>
<td></td>
</tr>
</table>
<script src="jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function() {
$(".one").eq(0).find('td').eq(0).html("I'm tracked");
// get 1st tr and get first td
$(".one").eq(1).find('td').eq(1).html("I'm tracked");
// get 2nd tr and get second td
$(".one").eq(2).find('td').eq(0).html("I'm tracked");
// get 3rd tr and get first td
});
</script>
</body>
</html>
$(文档).ready(函数(){
$(.one”).eq(0.find('td').eq(0.html(“我被跟踪”);
//获得第一个tr和第一个td
$(“.one”).eq(1).find('td').eq(1).html(“我被跟踪”);
//获得第二个tr和第二个td
$(“.one”).eq(2).find('td').eq(0).html(“我被跟踪”);
//获得第三个tr和第一个td
});
但是我想这种方法可能会很乏味。您可以使用XHTML:
<p id="foo" xml:id="bar">
通过XHTML,您可以将类似的ID应用于多个控件
类似的问题可以在这里找到:
您可以使用XHTML:
<p id="foo" xml:id="bar">
通过XHTML,您可以将类似的ID应用于多个控件
类似的问题可以在这里找到:
您可以使用XHTML:
<p id="foo" xml:id="bar">
通过XHTML,您可以将类似的ID应用于多个控件
类似的问题可以在这里找到:
您可以使用XHTML:
<p id="foo" xml:id="bar">
通过XHTML,您可以将类似的ID应用于多个控件
类似的问题可以在这里找到:
虽然重复ID无效,但可以容忍并解决它们。它们实际上只是使用document.getElementById时的一个问题 我猜这张桌子看起来像:
<table id="t0">
<tr>
<td>-<th>count<th>Pass<td>Fail<td>Error<td>
<tr>
<td>-<td>1<td>1<td>0<td>0<td>
<tr>
<td>-<td>1<td>1<td>0<td>0<td>
<tr id='total_row'>
<td>Total<td><td><td><td><td>
<tr>
<td>-<td>1<td>1<td>0<td>0<td>
<tr>
<td>-<td>1<td><td>1<td>0<td>
<tr>
<td>-<td>1<td><td>0<td>1<td>
<tr id='total_row'>
<td>Total<td><td><td><td><td>
</table>
<button onclick="calcTotals();">Calc totals</button>
-countPassFailError
-1100
-1100
全部的
-1100
-110
-101
全部的
计算总数
如果这是正确的,那么添加每个小节的函数可以如下所示:
function calcTotals(){
var table = document.getElementById('t0');
var rows = table.rows;
var row, totals = [0,0,0,0];
// For every row in the table (skipping the header row)
for (var i=1, iLen=rows.length; i<iLen; i++) {
row = rows[i];
// If it's a total row, write the totals and
// reset the totals array
if (row.id == 'total_row') {
for (var j=0, jLen=totals.length; j<jLen; j++) {
row.cells[j+1].innerHTML = totals[j];
totals[j] = 0;
}
// Otherwise, add values to the totals
} else {
for (var k=0, kLen=totals.length; k<kLen; k++) {
totals[k] += parseInt(row.cells[k + 1].innerHTML) || 0;
}
}
}
}
函数calcTotals(){
var table=document.getElementB