1

select 要素に 2 種類のリストを追加しました。

ユーザーのリスト:<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>

選択したリスト項目の種類に基づいて、変数を「ユーザー」または「グループ」として設定する必要があります。

私はこれをやってみました:var ownerType = $("#groupOwner[groupid]") ? "group" : "user";しかし、それは「グループ」を返し続けます

4

3 に答える 3

1

まず、groupidanduseridは要素の有効な属性では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>

次に、#groupOwnerselect ですが、selected の data 属性を確認する必要がありますoption。これを試して:

var ownerType = $("#groupOwner option:selected").data('groupid') ? "group" : "user";

フィドルの例

于 2013-10-29T15:56:13.120 に答える
0

セレクターは常に true と評価されます。セレクターに一致するものがない場合、jQuery は空の配列を返し、これがtrue三項テストで評価されます。

jQuery によって返される配列の長さをテストして、要素が DOM 上にあるかどうかを判断する必要があります。

例 :

// Will print No, foo isn't an HTML element present on the DOM
$('foo').length ? console.log('Yes') : console.log('No');

// Will print Yes, $('foo') = []
$('foo') ? console.log('Yes') : console.log('No');
于 2013-10-29T15:58:15.433 に答える