我在html中有一个表,它的列顺序可以改变。该表的代码是:
<table id="table">
<tr>
<td>ID</td>
<td>Place</td>
<td>Population</td>
</tr>
<tr>
<td>1</td>
<td>Phoenix city</td>
<td>1445632</td>
</tr>
<tr>
<td>2</td>
<td>San Antonio city</td>
<td>1327407</td>
</tr>
<tr>
<td>3</td>
<td>San Diego city</td>
<td>1307402</td>
</tr>
<tr>
<td>4</td>
<td>Dallas city</td>
<td>1197816</td>
</tr>
<tr>
<td>5</td>
<td>San Jose city</td>
<td>945942</td>
</tr>
</table>
我需要获取id等于2列的值,第一行显示“Place”。我用来尝试这样做的jquery代码是:
//Convert Object
var table = $('#table');
//get cell
var valuefinal = $(table).find("tr").eq(2).find("td").text("Place");
//display value
alert(valuefinal);
有可能这样做吗?我认为这样做非常复杂
答案 0 :(得分:1)
如果这是你的意思,这将选择你正在寻找的道路。
var cell = $("td:contains('Place')");
http://api.jquery.com/contains-selector/
编辑:发表评论后:
我认为这就是你要找的东西: http://jsfiddle.net/SdBBy/316/
// get cell var valuefinal = $(表).find(&#34; TD:第n个孩子(2)&#34)当量(2)的.text();
。
答案 1 :(得分:1)
看起来您正在寻找更具动态性的解决方案。请参阅上面的演示和以下代码:
var table = $('#table'),
colHeader = {};
table.find('tr').eq(0).children('td')
.each(function(i,v) {
colHeader[ $(v).text() ] = i;
});
console.log( colHeader );
var valuefinal = table.find('tr').filter(function(){
return $(this).children('td').eq( colHeader['ID'] ).text() == 2;
})
.children('td').eq( colHeader['Place'] ).text();
alert(valuefinal);