0

これが私の問題です。画像を選択してjqueryを使用して送信したいので、異なる画像があり、1つを選択して送信します。

したがって、私の考えは、LabBox の画像 (たとえば、「images/dontlike_OFF.png」) を$(this).attr('select', 'true');クリックすると、選択属性を 1 つ作成することです (後で、クリックするとsendLabForm、持っている画像の名前を取得したいセレクターを使用してクリックします$(#LabBox img[attribute=Value])

属性を作成するこのアイデアは奇妙だと思いますが、firebug では、その属性が実際に作成されていることがわかります。問題は、選択した属性でその img の名前を取得したい場合のみです。

だから、私の質問は:なぜこれが不可能なのですか?通常のHTMLフォームを使用せずに送信ボタンをクリックしたときに選択したimgの名前を取得する方法はありますか?

<div id='LabBox'>
    <img alt="dontlike" name="dlike" src="images/dontlike_OFF.png"/>
    <img alt="check" name="check" src="images/check_OFF.png"/>
    <img alt="funny" name="funny" src="images/funny_OFF.png"/>
    <img alt="idea" name="gidea" src="images/idea_OFF.png"/>
    <img alt="imp" name="imptt" src="images/imp_OFF.png"/>
 </div>   
    <script type="text/javascript">

        $("#LabBox img").click(function () {
                $(this).attr('select', 'true');     
            });

        $("#sendLabForm").click(function(){
            console.log($("#LabBox img[select='true']").name);     
        });


    </script>
4

4 に答える 4

2

次のような data() を使用する必要があります。

デモ

$("#LabBox img").click(function () {
     $(this).data('select', true);
 });

 $("#sendLabForm").click(function () {
     var selectedImgs = [];
     $("#LabBox img").each(function () {
         $(this).data('select') ? selectedImgs.push(this.name) : false;
     });
     alert(selectedImgs.join(','));
 });
于 2013-04-17T16:11:10.470 に答える
0

これが私の問題に対する私の解決策です。実際には、属性を作成できます.attr()。それらを取得する方法を指定するだけです。

これは本当にうまくいきます。

$("#LabBox img").click(function () {

        $(this).attr('select', true);
});


$("#sendLabForm").click(function(){

    console.log( $('#LabBox img[select="true"]').attr('name'));

    });

現時点では、この方法の欠点は見当たりませんが、この方法に問題がある場合はお知らせください。

于 2013-04-17T17:51:42.183 に答える
0

単に選択した画像にクラスを与えてみませんか?

$('#LabBox img').click(function(e){
    $(this).toggleClass('active');
});

$('form').submit(function(){
    console.log( $('#LabBox img.active') );
});
于 2013-04-17T17:05:06.210 に答える