2012-07-22 100 views
-6

使用单元格的坐标我想查找特定单元格的内容..我的意思是如果我们有特定单元格的行索引和列索引,并且我们想通过传递单元格的索引来获取特定单元格的内容作为函数中的参数,然后在html表中搜索特定单元格的内容。如何查找具有行和列索引的特定单元格的内容?

function createtable() { 
    function displaytable(argument) { 
    var tr=document.createElement('tr'); 
    for (var i=0; i < argument.length; i++) { 
     var td=document.createElement('td'); 
     if (i == 0) { 
     td.appendChild(document.createTextNode(argument[i])); 
     } 
     if (i == 1) { 
     td.appendChild(document.createTextNode(argument[i])); 
     } 
     if (i == 3) { 
     td.appendChild(document.createTextNode(argument[i])); 
     } 
     if (i == 2) { 
     td.ondblclick= function() { 
     var column_index= (this.cellIndex) -1; 
     var row_index= (this.parentNode.rowIndex); 
     search_cell(row_index,column_index); 
     } 
     td.appendChild(document.createTextNode(argument[i])); 
    } 
    tr.appendChild(td); 
    } 
    document.getElementById('table_body').appendChild(tr); 
} 
document.write("<table border=\"1\"><tr><th>INDEX</th><th>--CELL NAME--</th><th>--PIN NAME--</th><th>--PG PIN--</th></tr><tbody id='table_body'></tbody></table>"); 

for (var x=0; x < array_cells.length; x++) { 
    displaytable([x+1,array_cells[x].cell,array_cells[x].pins,array_cells[x].pg_pins]) 
} 
function search_cell(row_index,column_index) { 
    //What to write over here 
} 
} 
+0

到现在我刚刚使用json数组中的数据动态创建了一个表。现在我想要的是,当我点击数据/我使用javascript创建的单元格的内容时,我将该数据返回到变量中? – sam1989 2012-07-22 08:20:25

回答

1

你需要一个事件侦听器添加到您的表,然后得到事件的目标innerHTML的是这样的:

yourTable.addEventListener('click', function (event) { 
    console.log(event.target.innerHTML); 
}); 

你并不需要一个侦听器添加到每个细胞,这是浪费资源,为该表使用一个全局侦听器。

+0

yourTable是包含html表格元素的对象,例如: yourTable = document.createElement('table'); //之后,你添加一些元素 //最后,将监听器添加到表元素 – micnic 2012-07-23 08:25:12

+0

在我的代码中我已经做出更改应用此..我尝试了不同的方式没有任何工作可以在哪里应该我应用这个改变..?在我的代码对象将是我的表ID? – sam1989 2012-07-23 09:04:06

+0

不要使用document.write()添加新元素,而是使用document.createElement(https://developer.mozilla.org/en/DOM/document.createElement),但仍然可以使用document.getElementById('table_body ').addEventListener('click',function(event){console.log(event.target.innerHTML); }); – micnic 2012-07-23 11:49:37

0

如果你正在构建在JavaScript此表中,最简单的做法是添加一个onclick方法将细胞在其中返回this.innerHTML

var e = document.createElement('td'); 
e.onClick = function(){ 
    doSomeThingWith(this.innerHTML); 
} 
+0

我想让表格的每个单元格在我点击它们时返回它的数据?每个细胞会是相同的吗? – sam1989 2012-07-22 08:11:05

+0

每个细胞都会认为自己是“this”,所以是的,你会得到每个细胞的内容。 – 2012-07-22 08:13:57

+0

我们是否也可以在不点击的情况下获得相邻单元格的值?我的意思是,如果我点击像row1cell2的单元格可以我可以同时获得单元格的内容... row1column1和row1column2一起在同一个变量中? – sam1989 2012-07-22 08:27:27

1

标记:

<td onclick="click(event)">content</td> 

JS:

function click(event) 
{ 
    var target = event.target || event.srcElement; 
    var content = target.innerHTML || target.textContent; 
} 

http://jsfiddle.net/NRKsT/

+0

||意味着什么?内容变量将具有html表格单元的数据/内容? – sam1989 2012-07-22 08:04:07

+0

这是为了浏览器的兼容性。通常双管道(“||”)意味着逻辑或。在这种情况下,它表现为空合并。 – 2012-07-22 08:05:18

+0

请你能详细说明或提供一些参考,我可以得到更多关于空合并的描述吗? – sam1989 2012-07-22 08:07:06

1

假设这是你的HTML:

<table> 
    <tr> 
     <td>Cell 1</td> 
     <td>Cell 2</td> 
     <td>Cell 3</td> 
    </tr> 
    <tr> 
     <td>Cell 4</td> 
     <td>Cell 5</td> 
     <td>Cell 6</td> 
    </tr> 
</table> 

这jQuery代码会做你想要什么:

$(document).ready(function() { 
    $('td').click(function() { 
     somevar = this.innerHTML; 
     alert(this.innerHTML); 
    }); 
}); 

如果你喜欢简单的JavaScript,然后:

var temp = document.getElementsByTagName('td'); 
for(var i = 0; i < temp.length; i++) { 
    temp[i].addEventListener('click', function (event) { 
     alert(this.innerHTML); 
    }); 
} 
+0

而不是'alert(this.innerHTML);'使用'var temp = this.innerHTML; someMethod(temp);'假设someMethod是你想调用和传递参数的方法的名字。 – 2012-07-22 08:20:22

+0

我们是否也可以在不点击的情况下获得相邻单元格的值?我的意思是,如果我点击可以有可能我得到两个单元格的内容...一个row1column1和row1column2在同一个变量中? – sam1989 2012-07-22 08:44:54

+0

这将是一个单独的问题。如果我的答案帮助您将其标记为正确的答案。发表一个新问题 – 2012-07-22 08:53:30

相关问题