4

HTML要素の1つをjQueryに渡す際に問題があります。attr()属性にアクセスできることはわかっています。それにもかかわらず、私は何か間違ったことをしていると感じています。

これは私の単純なjQuery関数です:

<script type="text/javascript">
    function test(value) {
        alert(value);
    }
</script>


foreach ループによって作成された動的リストボックスがあります。

<select  multiple="multiple" name="factors1" id="main_factors" style="width: 200px; height: 200px;">

<?php foreach ($array as $option): ?>
    <option onclick="test(<script>this.attr('title').value</script>);"
            id="<?php echo $option[0]; ?>"
            title="<?php echo $option[2]; ?>" 
            value="<?php echo $option[0]; ?>">
        <?php echo $option[1]; ?>
    </option>
<?php endforeach ?>

</select>

たとえば、誰かがリストボックスのアイテムをクリックすると、そのアイテムがメッセージボックスに表示されます。ただし、このコードは機能しませんでした。

onclick="test(<script>this.attr('title').value</script>);"

onclick 属性から関数に title 属性値を送信するにはどうすればよいですか?

前もって感謝します。

4

4 に答える 4

2

このコードを試してください。コードを間違えていると思います。

<select  multiple="multiple" name="factors1" id="main_factors" style="width: 200px; height: 200px;" onchange="test(this.value);">

<?php foreach ($array as $option): ?>
<option id="<?php echo      $option[0]; ?>" title="<?php echo $option[2]; ?>" 
value="<?php  echo $option[0]; ?>"><?php echo $option[1]; ?></option>
<?php endforeach ?>


</select>

そしてあなたのjQueryで:

<script type="text/javascript">
    function test(value)
       {
        alert(value);
       }
    </script>
于 2012-09-07T04:58:33.380 に答える
2
onclick="test(this)"

function test(value)
{
    alert($(value).attr('title'));
}

デモを見る

于 2012-09-07T04:57:20.387 に答える
0

要素onchangeでイベントを使用する必要があります。select

​&lt;select onchange="test(this.value)">

JavaScript:

function test(value) {
    alert(value)        
}​

デモを見る

于 2012-09-07T05:03:47.227 に答える
0

jQuery をインポートして利用しているため、イベント ハンドラーを html 要素から分離することをお勧めします。

PHP から完全に削除しonclickます。

<select  multiple="multiple" name="factors1" id="main_factors" style="width: 200px; height: 200px;">
<?php foreach ($array as $option): ?>
<option id="<?php echo $option[0]; ?>" title="<?php echo $option[2]; ?>" 
value="<?php  echo $option[0]; ?>"><?php echo $option[1]; ?></option>
<?php endforeach ?>
</select>

changeそして、JavaScript 内から関数をイベントにバインドします。

$(document).ready(function() {
    $('#main_factors').change( function() {
        test( $(this).val() );
        // you can also do:
        // test( this.value );
    });
});

function test(value)
{
    alert(value);
}
于 2012-09-07T06:21:24.010 に答える