而在普通的js中,您可以在表上添加一个侦听器来查看点击的来源。 :
<script type="text/javascript">
// A helper functions
// Return ancestor of el with tagname or
// undefined if no such parent
function upTo(el, tag) {
tag = tag.toLowerCase();
do {
el = el.parentNode;
} while (el && el.tagName && el.tagName.toLowerCase() != tag)
return el.tagName? el : null;
}
// Check first radio button in row of clicked link
function doRadioThing(el, evt) {
// Helper function, specific to this fn so
// keep local
function getFirstRadio(el) {
var inputs = el.getElementsByTagName('input');
for (var i=0, iLen=inputs.length; i<iLen; i++){
if (inputs[i].type == 'radio') return inputs[i];
}
}
// Get ref to element clicked on
var src = evt.target || evt.srcElement;
// Only proceed if it was an A element:
if (src && src.tagName && src.tagName.toLowerCase() != 'a') return;
// Get parent TD
var cell = src && upTo(src, 'td');
// Get parent TR
var row = cell && cell.parentNode;
// Get first radio button in row
var inp = row && getFirstRadio(row);
// Uncheck first radio button in each row if there is one
// so only the one in the row that was clicked on is checked
// May not be a requirement
var rows = el.rows;
for (var i=0, iLen=rows.length; i<iLen; i++) {
var radio = getFirstRadio(rows[i]);
radio && (radio.checked = false);
}
// Check input in row of clicked link if there is one
inp && (inp.checked = true);
}
</script>
<table onclick="doRadioThing(this, event);">
<tr>
<td><input type="radio" id="r0">
<td><a href="#">mappedusers</a>
<td><a href="#">mappesdomains</a>
<td><a href="#">and mappedroles</a>
<tr>
<td><input type="radio" id="r1">
<td><a href="#">mappedusers</a>
<td><a href="#">mappesdomains</a>
<td><a href="#">and mappedroles</a>
</table>
你能提供实际的代码吗? – tradyblix 2011-05-13 02:49:16