簡體   English   中英

jQuery:通過attr獲取按鈕的值

[英]jquery: get value of button by attr

我有一個頁面,它有多個按鈕。 這些按鈕是動態生成的。 您可以在下面的示例中看到data =的值是動態生成的。

<a id="btn-classified" name="btn-classified" data-target="#Modal" data-toggle="modal" data="26" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a>
<a id="btn-classified" name="btn-classified" data-target="#ApplyModal" data-toggle="modal" data="23" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a>
<a id="btn-classified" name="btn-classified" data-target="#ApplyModal" data-toggle="modal" data="22" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a>

我正在嘗試獲取jquery中數據的值。

myvar1= $('#btn-classified').attr('data');
    alert(myvar1);

但是問題一直都是我得到26作為輸出。 我不確定我在做什么錯。

請指教。

id必須是唯一的。 如果要將事件添加到所有這些鏈接中,則可以選擇一個通用選擇器,例如nameclass

$("a[name='btn-classified']").on('click',function(event){
alert($(this).attr('data'))
})

JSFIDDLE

您在所有按鈕上都具有相同的ID,因此僅使用其中一個按鈕。 ID應該是唯一的。 您需要為他們提供不同的ID或類,以使用它們。

                <html>
            <head>
            <script type="text/javascript"
                src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
            </head>
            <body>
                <a id="btn-classified1" name="btn-classified" data-target="#Modal"
                    data-toggle="modal" data="26" class="btn-home"
                    href="javascript:void();" data-original-title="" title="">Apply</a>
                <a id="btn-classified2" name="btn-classified" data-target="#ApplyModal"
                    data-toggle="modal" data="23" class="btn-home"
                    href="javascript:void();" data-original-title="" title="">Apply</a>
                <a id="btn-classified3" name="btn-classified" data-target="#ApplyModal"
                    data-toggle="modal" data="22" class="btn-home"
                    href="javascript:void();" data-original-title="" title="">Apply</a>
                <script type="text/javascript">

                $('.btn-home').each(function(){
                       alert($(this).attr("id"));      
                     });
                 </script>
            </body>
            </html>

如果要動態生成按鈕,請嘗試像這樣構建id,以使id保持唯一。 這里的問題是ur ID,因為所有ur btns的id都相似,它將僅選擇第一個值。

這是上面的示例PHP代碼

<?php for($i=0; $i<10; $i++): ?>
    <button id="<?php echo 'idName_'.$i ?>" data="<?php echo 'data_'.$i ?>" onClick=clickAction(<?php echo $i ?>) >
<?php endfor; ?>

<script>
function clickAction(i){
    myvar1= $('#idName_'+i).attr('data');
    alert(myvar1);
}
</script>

您有重復的ID元素。 ID必須是唯一的。 您可以將dom修改為具有相同的類。 像這樣:

<a class="btn-classified" name="btn-classified" data-target="#Modal" data-toggle="modal" data="26" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a>
<a class="btn-classified" name="btn-classified" data-target="#ApplyModal" data-toggle="modal" data="23" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a>
<a class="btn-classified" name="btn-classified" data-target="#ApplyModal" data-toggle="modal" data="22" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a>

然后使用類選擇器定位它們,並使用.each()進行迭代以獲取各自的屬性值:

 $('.btn-classified').each(function(){
   console.log($(this).attr('data'))
 });

工作片段:

 $('.btn-classified').each(function(){ console.log($(this).attr('data')) }); 
  <a class="btn-classified" name="btn-classified" data-target="#Modal" data-toggle="modal" data="26" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a> <a class="btn-classified" name="btn-classified" data-target="#ApplyModal" data-toggle="modal" data="23" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a> <a class="btn-classified" name="btn-classified" data-target="#ApplyModal" data-toggle="modal" data="22" class="btn-home" href="javascript:void();" data-original-title="" title="">Apply</a> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

<input type="button" id="get_value" value="2">
<script type="text/javascript">
$(document).ready(function(){
   var val = $("#get_value").attr('value');
   alert(val);
});
</script>

嗨,第一件事是'id'應該是唯一的,您可以使用jquery每個函數:

$( "a.btn-home" ).each(function( index ) {
   var btn_val= $(this).attr('data');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM