Tenha uma coluna da tabela que estou tentando expandir e ocultar:
O jQuery parece ocultar os td
elementos quando eu o seleciono por classe, mas não pelo nome do elemento .
Por exemplo, por que:
$(".bold").hide(); // selecting by class works
$("tcol1").hide(); // select by element name does not work
Observe o HTML abaixo, a segunda coluna tem o mesmo nome para todas as linhas. Como eu poderia criar esta coleção usando o name
atributo?
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
Respostas:
Você pode usar o seletor de atributo jQuery :
fonte
$("td:not([name='tcol1'])")
por exemplo. Você pode vê-lo no presente fiddleQualquer atributo pode ser selecionado usando
[attribute_name=value]
way. Veja a amostra aqui :fonte
var value = $("[name=nameofobject]");
<input name="itemid[]">
. Portanto, essa resposta funcionou mais perfeitamente do que a resposta aceita, graças ao uso adequado das aspas.Se você tem algo como:
Você pode ler tudo assim:
O trecho:
fonte
Você pode obter a matriz de elementos pelo nome da maneira antiga e passar essa matriz para o jQuery.
nota: o único momento em que você teria um motivo para usar o atributo "name" deve ser para caixas de seleção ou entradas de rádio.
Ou você pode simplesmente adicionar outra classe aos elementos para seleção (é o que eu faria)
fonte
Você pode obter o valor do nome de um campo de entrada usando o elemento name no jQuery:
fonte
Estruturas geralmente usam nomes de colchetes em formulários, como:
Eles podem ser acessados por:
fonte
Eu fiz assim e funciona:
https://api.jquery.com/attribute-equals-selector/
fonte
Você esqueceu o segundo conjunto de aspas, o que torna a resposta aceita incorreta:
fonte
'td[name="nested[fieldName]"]'
Aqui está uma solução simples:
$('td[name=tcol1]')
fonte
Você pode obter o elemento no JQuery usando seu atributo ID como este:
fonte
Você pode usar qualquer atributo como seletor com
[attribute_name=value]
.fonte
Pessoalmente, o que eu fiz no passado é fornecer a eles um ID de classe comum e usá-lo para selecioná-los. Pode não ser o ideal, pois eles têm uma classe especificada que pode não existir, mas facilita muito a seleção. Apenas verifique se você é único em seus nomes de classe.
ou seja, para o exemplo acima, eu usaria sua seleção por classe. Melhor ainda seria alterar o nome da classe de negrito para 'tcol1', para que você não obtenha inclusões acidentais nos resultados do jQuery. Se bold realmente se refere a uma classe CSS, você sempre pode especificar ambos na propriedade class - ie 'class = "tcol1 bold"'.
Em resumo, se você não puder selecionar por Nome, use um seletor jQuery complicado e aceite qualquer ocorrência de desempenho relacionada ou use os seletores de Classe.
Você sempre pode limitar o escopo do jQuery incluindo o nome da tabela, ou seja, $ ('# tableID> .bold')
Isso deve restringir o jQuery de pesquisar no "mundo".
Ele ainda pode ser classificado como um seletor complicado, mas restringe rapidamente qualquer pesquisa na tabela com o ID de '#tableID', mantendo o processamento no mínimo.
Uma alternativa para isso, se você estiver procurando por mais de um elemento dentro de # table1, seria procurar isso separadamente e depois passá-lo para o jQuery, pois isso limita o escopo, mas economiza um pouco de processamento para procurá-lo a cada vez.
fonte
Você pode usar a função:
fonte
get.elementbyId()
? Você quis dizerdocument.getElementById()
?