JQUERY仅在包含输入类型=文本(而不是输入类型=无线电)的情况下更改TD样式

我已经应用了如下样式,它对我很有用:

$("td[id='cellId']").css("text-align", "left"); 

但是,我需要将该样式仅应用于TD,如果它包含文本框而不是单选按钮。

我搜索过高和低,但find()contains()和喜欢,似乎没有工作。

使用:has()选择器匹配包含其他元素的元素。

 $("td#cellId:has(:text)").css("text-align", "left"); 

首先请注意你的$("td[id='cellId']")是相当令人惊讶的:我猜你有一些包含cell id的var cellId ,所以你应该使用$('#' + cellId)

现在,由于你没有准确了解td中的(最终)嵌套元素,我们必须确保其中没有单选按钮。
无论如何,我们假设我们已经根据需要填充了var cellElem (可能如上所示)。

所以你可以使用这样的东西:

 if (!cellElem.find([type=radio]).length) { cellElemn.css(textAlign: 'left'); } 

如果你需要过滤包含文本框而不是单选按钮的TD-s,那么你需要使用:has:not combination:

  $("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; } 
  
cell-1-1 cell-1-2 cell-1-3
cell-2-1 cell-2-2 cell-2-3