0
        $(".gl").hover(function() {
    $('select[name="' + $(this).attr('name') + '"]').removeClass("gl").addClass("glHover");//Occurs when hovering over
    }, function(){  
        //Occurs when hover is done
    $('select[name="' + $(this).attr('name') + '"]').removeClass("glHover").addClass("gl");
    });

これは私のコードです。基本的に、誰かが gl であるクラスにカーソルを合わせると、自分の名前と一致する名前を持つすべての要素を見つける必要がありますが、これは私にとってはうまくいきません。これをやってのける方法を確認してください

上記のコードを編集しましたが、まだ機能していません。これが私のhtmlが次のように見える理由です(おおよそ):

<table><tr>
<td class='gl' name='07/25'></td>
</td></table>

アップデート

$('td.gl').hover(function() {
$('select[name="'+ $(this).data('name') +'"]').toggleClass('gl glHover');
});

<td class='gl' data-name='07/18'></td>

まだ動作していません

4

3 に答える 3

1

あなたのコードには文字列連結エラーがあり、最後に aがありません。を+使用して名前を取得できます。this.name$(this).attr('name')

$(".gl").hover(function() {
    $("select[name="+ this.name + "]").removeClass("gl").addClass("glHover");   
}, function(){
    $("select[name="+ this.name + "]").removeClass("glHover").addClass("gl");
});

また

$(".gl").hover(function() {
    $("select[name="+ this.name + "]").removeClass("gl").addClass("glHover"); 
});

nameは の有効な属性ではありませんtd

name次のように使用する代わりにdata-name

<table>
    <tr>
        <td class='gl' data-name='07/25'>07/25</td>
        <td class='gl' data-name='07/25'>07/25</td>
    </tr>
</table>

jQueryコードを変更します:

$('td.gl').hover(function() {
    $('select[name="'+ $(this).data('name') +'"]').toggleClass('gl glHover');
});
于 2012-07-25T17:19:20.920 に答える
1

試す:

$(".gl").hover(function() 
    $('select[name="' + $(this).attr('name') + '"]').removeClass("gl").addClass("glHover"); 
}, function(){
    $('select[name="' + $(this).attr('name') + '"]').removeClass("glHover").addClass("gl"); 
});

for concatenationが欠落していた+ため、要素の宣言は無効でした。この場合、要素の name 属性を置き換えるためのものであり、引用符が正しくありません。name 属性に二重引用符を使用しており、構文が無効だったため、単一引用符に切り替えました。

更新:ホバーされた要素の名前に対応する名前の要素タイプを選択したいようです。現在の使用法は要素をselect[...]探しselectます。class対応する値を持つ属性を使用して要素をリンクし、その属性を表す でnameそれらの要素を参照できるようにすることをお勧めします。classname

この場合、次のことを試してください。

$(".gl").hover(function() 
    $('.' + this.name).removeClass("gl").addClass("glHover"); 
}, function(){
    $('.' + this.name).removeClass("glHover").addClass("gl"); 
});
于 2012-07-25T17:10:12.737 に答える
1
 $("select[name='"+$(this).attr('name')+"']") 

動作するはずです。

于 2012-07-25T17:10:18.507 に答える