为什么我的元素不被视为等同于自身?
Why is my element not seen as equating to itself?
我在 C# 中创建了一个 html 输入文本元素:
boxIndex1 = new TextBox()
{
CssClass = "dplatypus-webform-field-input indexcell",
Width = TEXTBOX_WIDTH,
ID = "boxIndex1foapalrow2"
};
...和这个 jQuery 响应 "boxIndex1foapalrow2" 及其表兄弟("boxIndex2foapalrow3"、"boxIndex3foapalrow4" 等)的模糊事件:
$(document).on("blur", '.indexcell', function (e) {
var $currentindexcell = $(this);
if ($currentindexcell == $('[id$=boxIndex1foapalrow2]')) {
alert('index cell 1 exited'); // testing
}
});
我逐步完成了它,当我跳出 "boxIndex1foapalrow2" 时分配给 $currentindexcell 的元素似乎是我所期待的:
<input name="ctl00$ctl24$g_5f3fedca_19f7_4bc3_b84e_efbef0c48a33$ctl00$boxIndex1foapalrow2" type="text" id="ctl00_ctl24_g_5f3fedca_19f7_4bc3_b84e_efbef0c48a33_ctl00_boxIndex1foapalrow2" class="dplatypus-webform-field-input indexcell" style="width:88px;">
...但如果条件等于 false,则警报不是 showing/the。为什么?在我看来,$currentindexcell
的值在这个实例中确实等于 $('[id$=boxIndex1foapalrow2]')
,但为什么 Javascript 执行引擎看起来不一样?
包含同一组元素的两个 jQuery 对象不相等。要测试您的 jQuery 对象是否与选择器匹配,请使用 .is()
:
if ($currentindexcell.is('[id$=boxIndex1foapalrow2]')) {
如果你真的想检查是否相等,你应该比较实际的元素(而不是 jQuery 包含它们的对象):
if (this == $('[id$=boxIndex1foapalrow2]')[0]) {
我在 C# 中创建了一个 html 输入文本元素:
boxIndex1 = new TextBox()
{
CssClass = "dplatypus-webform-field-input indexcell",
Width = TEXTBOX_WIDTH,
ID = "boxIndex1foapalrow2"
};
...和这个 jQuery 响应 "boxIndex1foapalrow2" 及其表兄弟("boxIndex2foapalrow3"、"boxIndex3foapalrow4" 等)的模糊事件:
$(document).on("blur", '.indexcell', function (e) {
var $currentindexcell = $(this);
if ($currentindexcell == $('[id$=boxIndex1foapalrow2]')) {
alert('index cell 1 exited'); // testing
}
});
我逐步完成了它,当我跳出 "boxIndex1foapalrow2" 时分配给 $currentindexcell 的元素似乎是我所期待的:
<input name="ctl00$ctl24$g_5f3fedca_19f7_4bc3_b84e_efbef0c48a33$ctl00$boxIndex1foapalrow2" type="text" id="ctl00_ctl24_g_5f3fedca_19f7_4bc3_b84e_efbef0c48a33_ctl00_boxIndex1foapalrow2" class="dplatypus-webform-field-input indexcell" style="width:88px;">
...但如果条件等于 false,则警报不是 showing/the。为什么?在我看来,$currentindexcell
的值在这个实例中确实等于 $('[id$=boxIndex1foapalrow2]')
,但为什么 Javascript 执行引擎看起来不一样?
包含同一组元素的两个 jQuery 对象不相等。要测试您的 jQuery 对象是否与选择器匹配,请使用 .is()
:
if ($currentindexcell.is('[id$=boxIndex1foapalrow2]')) {
如果你真的想检查是否相等,你应该比较实际的元素(而不是 jQuery 包含它们的对象):
if (this == $('[id$=boxIndex1foapalrow2]')[0]) {