次のように私は、スタイルを適用し、それは私にとって素晴らしい作品:jQueryの変更TDスタイル
$("td[id='cellId']").css("text-align", "left");
しかし、私はそのスタイルを必要としますテキストボックスとラジオボタンが含まれていない場合は、TDにのみ適用されます。
私は高低を検索しましたが、find()
,などが動作していないようです。
次のように私は、スタイルを適用し、それは私にとって素晴らしい作品:jQueryの変更TDスタイル
$("td[id='cellId']").css("text-align", "left");
しかし、私はそのスタイルを必要としますテキストボックスとラジオボタンが含まれていない場合は、TDにのみ適用されます。
私は高低を検索しましたが、find()
,などが動作していないようです。
:has()
セレクタを使用して、他の要素を含む要素を一致させます。あなたの$("td[id='cellId']")
はかなり驚くべきことである
$("td#cellId:has(:text)").css("text-align", "left");
最初のノート:私はあなたが$('#' + cellId)
を使用する必要がありますので、セルIDが含まれているいくつかのvar cellId
を持っていることを推測することがあります。
ここでは、tdの(最終的に)ネストされた要素については正確ではないため、はの中にラジオボタンがありません。
とにかく、必要に応じて入力したvar cellElem
があるとしましょう(上記のようなものかもしれません)。
だからあなたはこのような何かを使用することができます:
if (!cellElem.find([type=radio]).length) {
cellElemn.css(textAlign: 'left');
}
あなたはテキストボックスとNOTラジオボタンが含まれているTD-Sをフィルタリングする必要がある場合は、使用する必要が:has
と:not
組み合わせ:
$("td:not(:has(input[type='radio']))").has("input[type='text']").css("background", "red");
ここには、フィルタリングされたセルが赤い背景を持つスニペットがあります。あなたはどんなスタイルでもそれらを適用することができます。
$("td:not(:has(input[type='radio']))").has("input[type='text']").css("background", "red");
td {
border: 1px solid green;
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="text">cell-1-1</td>
<td><input type="radio">cell-1-2</td>
<td><input type="text"><input type="radio">cell-1-3</td>
</tr>
<tr>
<td><input type="radio">cell-2-1</td>
<td><input type="text">cell-2-2</td>
<td>cell-2-3</td>
</tr>
</table>
これはまさに私が探していたものです!ありがとう! – user3695961
あなたはそれをupvoteし、受け入れられた答えとしてマークすることができます – Banzay
は、あなたが本当に '' = IDを使用することを意味しますか? IDは一意でなければなりません。 – Barmar
そして '[id = cellId]'ではなく '#cellId'を使うべきです – Barmar