使用动态Id查找元素

Tar*_*aan 8 jquery jquery-selectors primefaces

我想在jquery中创建一个泛型函数来选择所有功能.我的网页上有一个标签视图.

我的组件的ID是:tabId:someDynamicId:rowId:componentId其中,someDynamicId是动态生成的.

所以在jquery中我想找到id以 - tabId:someDynamicId&以componentId结尾的元素.并且,tabId,someDynamicId和componentId将作为参数传递给需要查找此元素的泛型函数.

Mār*_*ovs 9

这很简单:

$('[id^=tabId][id$=componentId]').each(function(){
    var id = $(this).attr('id'); // tabId:someDynamicId:rowId:componentId?
    var list = id.split(':');??

    console.log(list[0]); // tabId
    console.log(list[1]); // someDynamicId
    console.log(list[2]); // rowId
    console.log(list[3]); // componentId?
})
Run Code Online (Sandbox Code Playgroud)

jQuery选择器中的通配符

但我建议使用正确的工具来完成这项工作.ID对于查找特定元素很有用,但在您的情况下,最好使用一个或两个类和数据属性.例如:

<div class="tabs" data-component-id="x" data-tab-id="y">
Run Code Online (Sandbox Code Playgroud)

然后找到所有$('.tabs')元素并使用$(this).data('component-id')和$(this).data('tab-id')

$('.tabs').each(function(){
    var component_id = $(this).data('component-id');
    var tab_id = $(this).data('tab-id');
});
Run Code Online (Sandbox Code Playgroud)

更新:

有使用它作为功能的例子:

function(tabId,componentId) {
    $('[id^='+tabId+'][id$='+componentId+']').each(function(){
        var id = $(this).attr('id'); // tabId:someDynamicId:rowId:componentId?
        var list = id.split(':');??

        console.log(list[0]); // tabId
        console.log(list[1]); // someDynamicId
        console.log(list[2]); // rowId
        console.log(list[3]); // componentId?
    })  
}
Run Code Online (Sandbox Code Playgroud)