jquery:通过attr获取按钮的值

时间:2016-07-27 04:39:15

标签: javascript jquery

我有一个页面,它有多个按钮。这些按钮是动态生成的。您可以在下面看到示例动态生成 data = 的值。

Sub CopyLastXNumberVisibleRows()
    Const MaxRows = 160
    Dim count As Long, lastRow As Long, x As Long
    Dim SourceRange As Range

    lastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row

    For x = lastRow To 2 Step -1
        If Not Rows(x).Hidden And Cells(x,"A") = "Some Criteria" Then
            count = count + 1

            If SourceRange Is Nothing Then
                Set SourceRange = Range(Cells(x, "B"), Cells(x, "S"))
            Else
                Set SourceRange = Union(SourceRange, Range(Cells(x, "B"), Cells(x, "S")))
            End If

            If count = MaxRows Then Exit For
        End If
    Next

    If Not SourceRange Is Nothing Then

        SourceRange.Copy Destination:=Sheet1.Range("A2")

    End If

End Sub

我试图在jquery中获取数据的值。

<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>

但问题是我一直得到 26 作为输出。 我不确定我做错了什么。

请告知。

7 个答案:

答案 0 :(得分:3)

id需要独一无二。如果您要为所有这些链接添加活动,可以选择常用选择器,例如nameclass

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

JSFIDDLE

答案 1 :(得分:2)

您在所有按钮上都有相同的ID,因此只使用其中一个按钮。 Ids应该是独一无二的。你需要给他们不同的id或类来访问它们。

答案 2 :(得分:2)

Python[Root]

答案 3 :(得分:1)

如果您要动态生成按钮,请尝试构建ID,以便id保持唯一。这里的问题是你的ID与所有你的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>

答案 4 :(得分:1)

您有元素的重复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>

答案 5 :(得分:1)

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

答案 6 :(得分:1)

嗨首先,那就是&#39; id&#39;应该是唯一的,你可以使用jquery每个函数:

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