如何将数组id传递给jquery选择器?

时间:2015-09-08 06:34:07

标签: javascript jquery arrays

我有一个数组标识id="x[]"的元素,它取决于我在数据库中的元素数量。它基本上是一个删除数据库中某个表行的x按钮。

<div align="center" id="x[]" class="x">
<a href="#"><img src="x 2.png" alt=""></a></div>

问题是,我不知道如何将此id传递给jQuery选择器。我想更改表单操作以删除行并创建隐藏输入以从另一个字段id="codsinmov[]"的字段获取我需要的参数,其中索引与x[]相同。到目前为止我所拥有的是:

$(document).ready(function(){
    for(var i=0; i<x.length; i++) {
    $('#x[i]').click(function(){
        var $hiddenInput = $('<input/>',{type:'hidden',id:codsinmovesse, name:codsinmovesse});
        $hiddenInput.val($('#codsinmov[i]').val());
        $hiddenInput.appendTo('#tabelaeditavel');
        $('#form').get(0).setAttribute('action', 'deletemoviment.php');
        $('#form').submit();
    });
    }
});

但它不起作用..所以,任何想法?对不起,我是jQuery的初学者。非常感谢你!

2 个答案:

答案 0 :(得分:1)

你可以使用

$("div[id^='x['").click(function(){
    // write code here })

所以这将在点击从x开始的div的id时执行。 所以根据我的理解你不需要在这里使用for循环而是使用'this'关键字并做你想要的。

我希望它会对你有所帮助。

答案 1 :(得分:0)

如果你想为所有元素添加一个eventListener,你可以像这样做

var $myButtons = $('.buttons');

这样,整个元素列表都存储在变量$ myButtons。

之后

现在您可以按照以下步骤继续:

$myButtons.on("click", function(event){
  console.log(this); // this will print out the clicked element
});

这样,具有类.buttons的每个元素都是可点击和可访问的。

如果要根据某个值动态选择带有jquery的单个元素,则必须从字符串中排除[i]

例如$('element:nth-child('+[i]+')');