[英]Linking javascript error with hard-coded html in C# string builder object
這可能是我在研究別人的代碼時第一次必須處理javascript錯誤。 請幫幫我。
當有人提交按鈕時,該網絡表單應該發送電子郵件。 但是,會觸發javascript錯誤,阻止這樣做:
所以這是我擊中是要帶我去的地方
我跟蹤並在下面看到了這段代碼
問題是:彈出窗口中的“顯示”屬性是否引用行標簽<td>的屬性“樣式”的值? cellColor初始化為'ffffff',即cellColor =“ ffffff”; 如果cellColor曾經是undefined / null,cellColor是否會導致屬性“ display”為undefined / null?
align ='left valign = middle style = background-color:#“ + cellColor +”; 邊框:實心1px#000000; \\“>”
(這是我跟蹤的代碼)
我是公認的JS駭客; JS大師可能有更好的解決方案...
這里的問題是,每當子節點不包含帶有顯示屬性的內聯樣式時, divHRSupervisors.childNodes[i].style.display != 'none'
都會引發未定義的錯誤。
將工作:
<div style="display: block;">content</div>
- or -
<div style="display: none;">content</div>
不管用:
<div>content</div>
此外,無論何時使用childNodes
,都將包括所有節點,包括文本。 例如...
'Test'div的0個子節點:
<div id="Test"></div>
'Test'div的1個子節點(div內的文本算作一個子節點):
<div id="Test">content</div>
3個用於“測試” div的子節點(1個用於主要文本內容,1個用於內部<div>
,1個用於內部<div>
的內容):
<div id="Test">
content
<div>child content</div>
</div>
使用當前JS中的條件測試,只要遇到子節點沒有內聯樣式的顯示集,就會拋出錯誤。
一種解決方案是將公共類添加到要檢查style.display
屬性的任何元素,然后檢查顯示是否設置為none。 類似於以下內容:
var divs = document.getElementById("divHRSupervisors");
var children = divs.childNodes;
for (var i = 0; i < children.length; i++) {
var child = children[i];
// someClass is a class applied to all elements you want to verify
if (child.className == 'someClass') {
// check to see if there is a display property and if the display
// property does not equal none.
if (child.style.display && child.style.display != 'none') {
alert(child.nodeName);
// do other stuff.
}
}
}
您的HTML將類似於以下內容(請注意someClass的使用):
<div id="divHRSupervisors">
<div class="someClass">hello</div>
<div class="someClass" style="display: block;">world</div>
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.