我生成的代碼如下所示:VAL()中顯示空字符串時,它實際上包含在Chrome的開發者工具的值
<tbody>
<tr>
<td>
<span class="LiveAgentStatusField" value="Online" >
Online
</span>
</td>
</tr>
</tbody>
請注意,這個HTML代碼Salesforce產生和我沒有除了跨度之外,對此有很大的控制。
我的jQuery代碼:
$(".LiveAgentStatusField").each(function(index) {
if ($(this).val() === 'online' || $(this).val() === 'Online') {
$(this).css("color", "#0EBE5E");
} else if ($(this).val() === 'offline' || $(this).val() === 'Offline') {
$(this).css("color", "#ccc");
}
});
有兩個持的事情發生在我身上:
當我使用
.LiveAgentStatusField
,它工作得很好。但是當我使用span.LiveAgentStatusField
時,它在調試過程中甚至沒有進入if代碼。儘管span標記的值應該爲
'Online'
的值,$(this).val()
實際上是""
在調試期間。我在此下面添加了一行以捕獲val() === ""
分支,並確保它指向正確的元素。
其實,我已經解決了我的代碼問題,使用.html()
。但我很想知道爲什麼它會變得很奇怪。
使用'$(本)。html的()'或'$(本)的.text()' – Cattla
值通常用於表單控件。使用'data-value'和'$(this).data('value')'而不是 – charlietfl
Stackoverflow用戶現在相當憤世嫉俗。如果你看到所有問題板,那麼帶有正面標記的問題就會比負面問題少讓我覺得有一些專業評論家除了給予負面評分之外沒有其他要做的事情 –