JS动态获取ID

时间:2014-04-10 08:37:56

标签: javascript jquery html

在我的页面上,我有几张包含产品信息及其作者的表格。我还有一个包含每个作者的超链接的div。现在我正在使用javascript将作者姓名链接到超链接:

<script>
    onload = myfun;
    function myfun(){
        var show  =document.getElementById('2364').innerHTML;
        var link  = document.getElementsByClassName('2364');   
        var item  = link[0];  
        var item2 = link[1]; 
        document.getElementById('2364').innerHTML=item.outerHTML+'; '+item2.outerHTML;
    }
</script>

我的问题是我需要动态获取元素ID,我不知道如何解决这个问题。

修改

Smarty创建了html,这是其中的一部分:

<tr><td class="PLContent"><span class="manufacturer"><div id={$module_data.PRODUCTS_ID}>

<h3 id={php}echo $e++;{/php}>{$module_data.PRODUCTS_MANUFACTURER_NAME}{$MANUFACTURER_LINK}</h3></div></span>

动态ID表示当用户点击作者时,该页面将填充不同的产品,并且这些产品将具有不同的ID。

2 个答案:

答案 0 :(得分:-1)

只需在元素中添加一个类名,然后获取所有ID(假设您熟悉jQuery)。

<tr><td class="PLContent"><span class="manufacturer"><div class="mydiv" id={$module_data.PRODUCTS_ID}>
    <h3 class="myh3" id={php}echo $e++;{/php}>{$module_data.PRODUCTS_MANUFACTURER_NAME}{$MANUFACTURER_LINK}</h3></div></span>

获取ID:

$(".mydiv").each(function() { alert($(this).attr("id"); });

$(".myh3").each(function() { alert($(this).attr("id"); });

答案 1 :(得分:-1)

谢谢你的回答,他们给了我一些想法。我设法通过以下方式解决了我的问题:

  1. 添加了仅包含产品ID
  2. 的元素
  3. 将我的代码更改为:
  4. var t1 = document.getElementById('1').innerHTML;
    var link = document.getElementsByClassName(t1);
    document.getElementById(t1).innerHTML = link[0].outerHTML;
    

    由于每页有10个产品,我会为每个更改ID的产品编写此功能。它可能不是很整洁,但它正在做这项工作。

    HTML:

    <div id={$module_data.PRODUCTS_ID}>
        <p>{$module_data.PRODUCTS_MANUFACTURER_NAME}</p>
        <p id={php}echo $e++;{/php}>{$module_data.PRODUCTS_ID}</p>
    </div>