javascript - 如何将数据从链接传递到 jQuery 函数?

标签 javascript jquery arrays indexing

$(function(){
    $('.tab2').live('click', function() {
      $('#coverTextH3').text(data[1].H3)
      $('#coverTextP').text(data[1].P)
        });
           });

假设我有一个链接 <a href="www.link.com"></a>我如何将数据(数组的索引)传递给 jQuery 函数,这样我就不必为每个索引 [0]-[7] 重复我的代码?

 var data = [
    {
        H3: 'name',
            p: 'more'

    },
    {
        H3: 'string',
        p: 'more strings'
     }]

最佳答案

有很多选择。如果通过 javascript 附加处理程序,我会选择基于元素的 id 或一些自定义属性,而不是类。假设您有许多这样的链接:

<a href="#" class="tab1" link-number="1">Tab 1</a>
<a href="#" class="tab2" link-number="2">Tab 2</a>
<a href="#" class="tab3" link-number="3">Tab 3</a>        

javascript 在这种情况下是

$(function(){
    $('a[link-number]').live('click', function() {
        var index = $(this).attr('link-number') * 1 - 1;
        $('#coverTextH3').text(data[index].H3)
        $('#coverTextP').text(data[index].P)
    });
});

或者,您可以在 a 元素声明中附加点击处理程序:

<a href="#" class="tab1" onclick="setCover(0)">Tab 1</a>
<a href="#" class="tab2" onclick="setCover(1)">Tab 1</a>
<a href="#" class="tab3" onclick="setCover(2)">Tab 1</a>

并像这样定义setCover函数:

function setCover(index) {
    $('#coverTextH3').text(data[index].H3)
    $('#coverTextP').text(data[index].P)
}

每个备选方案都需要更改您的 html。如果由于某种原因不可能,您至少现在需要调整标签的范围,这可能非常棘手。

关于javascript - 如何将数据从链接传递到 jQuery 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7226490/

相关文章:

javascript - function.call() 或 click()

java - 检查号码是否在号码列表中

javascript - 滚动 95 像素后显示固定在页面顶部的 Div

javascript - 使用 javascript/jquery 进行复选框操作

jquery - 在表单中上传和裁剪多张图片

Javascript:无法将对象数组存储到 Firestore

arrays - 如何从JSON传递List <dynamic>到List <MyModel>?

javascript - Appcelerator TableView > 行 > 文本字段 > 值

javascript - 如何创建 anchor ,添加 'onclick' 函数并转换为字符串

javascript - 使用jquery在页面登录