基于这些评论:
[NOX] - 你能告诉我们你的生成代码吗?
[艾哈迈德] -<input id="chkSingle" type="checkbox" name="ctl00$c1$RadGrid1$ctl00$ctl04$chkSingle" onclick="Checked(this);">
该title
属性不在输出中生成。为什么?我真的不知道。让我们一步一步地检查它。
首先,将您的复选框更改为此:
<asp:CheckBox ID="chkSingle" runat="server" onclick="Checked(this);" title='HELLO' />
如您所见,我更改了title
属性的值。检查输出,如果您没有任何title
属性,请尝试将其更改为data-title
:
<asp:CheckBox ID="chkSingle" runat="server" onclick="Checked(this);" data-title='HELLO' />
现在检查您生成的代码,它必须是这样的(我希望如此):
<input id="chkSingle" type="checkbox" name="ctl00$c1$RadGrid1$ctl00$ctl04$chkSingle" onclick="Checked(this);" data-title="Hello">
如果在生成的代码中,该属性data-title
是存在的,那么你就成功了。现在你必须改变你的函数来获得这个属性:
alert(cb.getAttribute('data-title'));
更新
正如您评论的那样,生成的代码是:
<span data-title="HELLO"><input id="ctl00_c1_RadGrid1_ctl00_ctl04_chkSingle" type="checkbox" name="ctl00$c1$RadGrid1$ctl00$ctl04$chkSingle" onclick="Checked(this);" /></span>
因此,您附加到的属性<asp:Checkbox />
变成了span
标签。所以你必须改变你的功能是这样的:
function Checked(cb) {
var $input = $(cb);
var $span = $input.closest('span');
var title = $span.attr('data-title');
if ($input.is(':checked')) {
alert(title);
}
}