1504 votes

Comment puis-je sélectionner un élément par son nom avec JQuery?

Avoir une colonne de table, je suis en train de développer et de cacher:

jQuery semble cacher les éléments td lorsque je sélectionne par classe , mais pas par l'élément de nom.

Par exemple, pourquoi:

$(".bold").hide();  // selecting by class works
$("tcol1").hide();  // select by element name does not work

Remarque le code HTML ci-dessous, la deuxième colonne du même nom pour toutes les lignes. Comment pourrais-je créer cette collection à l'aide de l'attribut de nom?

<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>

2691voto

Jon Erickson Points 29643

vous pouvez utiliser le sélecteur d'attribut

$('td[name=tcol1]') // matches exactly 'tcol1'

$('td[name^=tcol]') // matches those that begin with 'tcol'

322voto

user2804791 Points 109

Un attribut peut être sélectionné à l'aide de [attribute_name=value]. Voir l'exemple ici:

var value = $("name='nameofobject'");

84voto

Andreas M. Points 303

Si vous avez quelque chose comme:

<input type="checkbox" name="assetCheckbox" value="11" checked="">
<input type="checkbox" name="assetCheckbox" value="12">

Vous pouvez lire tous comme ça:

jQuery("input[name='mycheckbox']").each(function() {
    console.log( this.value + ":" + this.checked );
});

32voto

Your Friend Ken Points 2615

Vous pourriez obtenir le tableau d'éléments par nom de l'ancienne et de passer ce tableau à jQuery.

<html>
<head>
    <title>sandBox</title>
</head>
<body>
    <input type="radio" name="chName"/><br />
    <input type="radio" name="chName"/><br />
    <input type="radio" name="chName"/><br />
    <input type="radio" name="chName"/><br />
    <input type="button" onclick="toggleByName();" value="toggle"/>
</body>
</html>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    function toggleByName() {
        var arrChkBox = document.getElementsByName("chName");
        $(arrChkBox).toggle();
    }
</script>

remarque: la seule fois que vous avez une bonne raison d'utiliser l'attribut "name" doit être pour les checkbox ou radio entrées.

Ou vous pouvez simplement ajouter une autre classe les éléments de la sélection.(C'est ce que je ferais)

<html>
<head>
    <title>sandBox</title>
</head>
<body>
    <table>
        <tr>
            <td>data1</td>
            <td class="bold rowToToggle">data2</td>
        </tr>
        <tr>
            <td>data1</td>
            <td class="bold rowToToggle">data2</td>
        </tr>
        <tr>
            <td>data1</td>
            <td class="bold rowToToggle">data2</td>
        </tr>
    </table>
<input type="button" onclick="toggleByClass(true);" value="show"/>
<input type="button" onclick="toggleByClass(false);" value="hide"/>
</body>
</html>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    function toggleByClass(bolShow) {
        if (bolShow) {
            $(".rowToToggle").show();
        } else {
            $(".rowToToggle").hide();
        }
    }
</script>

-4voto

CalebHC Points 2733

Vous pouvez obtenir de l'élément en JQuery en utilisant l'attribut d'ID comme ceci:

$("#tcol1").hide();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X