我的select元素附加了两种类型的列表。
用户列表:<option value="domain\davidr" userid="108">David</option>
组列表:<option value="Test Group" groupid="10">Test Group</option>
这是我的选择html:
<select id="groupOwner">
<option value="default" disabled>Select a Group Owner</option>
<optgroup label="---Users---"></optgroup>
</select>
我需要根据所选的列表项类型将变量设置为“user”或“group”。
我尝试过这样做:var ownerType = $("#groupOwner[groupid]") ? "group" : "user";
但它会一直返回“群组”
答案 0 :(得分:1)
首先,groupid
和userid
不是option
元素的有效属性,会使您的网页无效。请改用data-*
属性:
<!-- Example user item -->
<option value="domain\davidr" data-userid="108">David</option>
<!-- Example group item -->
<option value="Test Group" data-groupid="10">Test Group</option>
其次,#groupOwner
是选择,而您需要检查所选option
的数据属性。试试这个:
var ownerType = $("#groupOwner option:selected").data('groupid') ? "group" : "user";
答案 1 :(得分:0)
您的选择器将始终被评估为true:如果您的选择器不匹配,jQuery将返回一个空数组,在您的三元测试中将对其进行评估{/ 1}}。
你应该测试jQuery返回的数组的长度,以确定你的元素是否在DOM上。
示例:
true
答案 2 :(得分:0)
$( “选择”)得到(0).hasAttributes( “属性”);