簡體   English   中英

從節點內訪問具有 ID 的多個元素,但也具有特定的 class

[英]Access multiple elements with ID from within a node, but also with specific class

我需要從特定元素中檢索ID 以“_inputError”結尾的所有元素,而且,我只需要檢索設置了class 'b-block'的 inputError。我將如何使用 javascript/jquery 執行此操作?

我知道我可以得到我的表單節點: var formNode = $("#frm1");

我知道我可以獲取所有以 ID 結尾的元素,但這將獲取所有元素,這不是我所需要的: var inputErrors = $("[id$=_inputError]"); .

我如何將它們混合在一起,以便從指定的表單節點中僅檢索帶有“d-block”class 的輸入錯誤?

干杯!

更新:這似乎對我有用:

var inputErrors = $("[id$=_inputError].d-block");
console.warn(inputErrors[0]);

它將使用 class.d-block 檢索所有 inputError。 但是,我還沒有找到如何僅從選定的表單元素 ID 而不是漏洞頁面來執行此檢查。 (我可以在一個頁面上有多個 forms!)

我需要從特定元素中檢索ID 以“_inputError”結尾的所有元素,並且,我只需要檢索設置了class 'b-block'的 inputError .. 我將如何使用 javascript/jquery 執行此操作?

我知道我可以通過以下方式獲取表單節點: var formNode = $("#frm1");

我知道我可以得到所有以 ID 結尾的元素,但這會得到所有元素,這不是我所需要的: var inputErrors = $("[id$=_inputError]"); .

如何將它們混合在一起,以便從指定的表單節點中僅檢索帶有 'd-block' class 的輸入錯誤?

干杯!

更新:這似乎對我有用:

var inputErrors = $("[id$=_inputError].d-block");
console.warn(inputErrors[0]);

它將使用 class.d-block 檢索所有 inputError。 但是,我還沒有找到如何僅從選定的表單元素 id 而不是孔頁進行此檢查。 (我可以在一個頁面上有多個 forms!)

為了盡可能幫助他人,這是最終解決方案以及我需要它的原因:

本質上,我從 ajax 帖子中得到回復,如下所示:

{
  type: 2,
  formid: 'frmProfile',
  fields: {
    username: "Invalid username!", 
    email: "Invalid email!"
  }
}

我循環我的 response.fields 以顯示每個失敗輸入下的個別錯誤。

然后我需要找到一種方法將焦點設置在第一個失敗的輸入上,因為我的字段不是基於 0 索引的,所以我不能簡單地將焦點設置在數組中的第一個字段上! 它們是“隨機”循環的!

因此,我決定獲取我們顯示的所有輸入錯誤(id=*_inputError 和 class d-block)。 返回數組中的第一個實際上是第一個輸入錯誤,所以:我使用它的ID來確定對應的輸入名稱並將焦點設置到它上面:

var inputErrors = $("#" + response.formid + " [id$=_inputError].d-block");
var firstInputError = inputErrors[0].id.replace(/_inputError$/, ''); // get just the name of the failed input! Its name/id should be the same as <name>_inputError!

document.getElementById(firstInputError).focus();

這似乎對我有用;)希望這可以為其他人提供想法。

感謝您的幫助! P

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM