0

次の行 これは、firefox/firebug の私のコードでは機能しません (ただし、JSFIDDLE では正常に機能します)。

var checkedVal = parseInt($('input[@name=' + uniqueNamePart + 'currDim]:checked').val(), 10);

http://jsfiddle.net/darrenshrwd/eqh2y/43/

<input type="radio" value="1" name="blahcurrDim">One
<input type="radio" checked="" value="2" name="blahcurrDim">Two
<input type="radio" value="3" name="blahcurrDim">Three
<input type="radio" value="4" name="blahcurrDim">Four

...

$('document').ready(

function() {

    var uniqueNamePart = "blah";

    var dimensionClick = function() {

        // This does NOT work in my code in firefox/firebug (but works fine in JSFIDDLE):
        var checkedVal = parseInt($('input[@name=' + uniqueNamePart + 'currDim]:checked').val(), 10);

        // This does work in both:
        //var myRadio = $('input[name=' + uniqueNamePart  + 'currDim]'),
        //    checkedVal = parseInt(myRadio.filter(':checked').val(), 10);        

        alert(checkedVal);

    };

    $('input[name=' + uniqueNamePart + 'currDim]:radio').click(dimensionClick);

});
4

1 に答える 1

3

属性セレクターの形式が正しくありません。@文字は必要ありません:

var checkedVal
    = parseInt($('input[name=' + uniqueNamePart + 'currDim]:checked').val(), 10);

そのコードはあなたのフィドルで機能するように見えますが、それは<input>要素がラジオ ボタンだけであるためです。そのため、無効な属性セレクターが無視されても一致は成功します。

于 2012-07-26T06:27:02.677 に答える