1

我无法为图像动态分配 id 值...我引用此图像 javascript 以相应地显示向上/向下箭头...这是代码片段...

<apex:variable var="count" value="{!1}"/>
<apex:image id="msn{!count}" url="{!URLFOR($Resource.style_resources, 'images/up-arrow.gif')}" alt="Open-close" />

但我收到编译错误,因为“id 需要文字值”...

我们不能动态分配 id 属性的值吗?

4

2 回答 2

1

Apex 图像

<apex:image id="theImage" value="/img/myimage.gif" width="220" height="55"/>

上面的示例呈现以下 HTML:

<img id="theImage" src="/img/myimage.gif" width="220" height="55"/>

所以改变

<apex:image id="msn{!count}" url="{!URLFOR($Resource.style_resources, 'images/up-arrow.gif')}" alt="Open-close" />

<img id="msn{!count}" src="{!URLFOR($Resource.style_resources, 'images/up-arrow.gif')}" alt="Open-close" />
于 2017-07-20T15:11:12.177 回答
0

你是对的,你不能动态分配元素 id。它必须是字符串文字。然而,我使用了 class 属性来创建以后可以在 javascript 中使用的自定义 id。我用 jQuery 来做这件事,它是强大的选择器,可以根据标签类型和类来选择元素。

下面的示例只是一个示例,但是使用 jQuery,您可以获得非常有创意的东西。

<apex:variable var="count" value="{!1}"/>
<apex:image id="msn" 
    url="{!URLFOR($Resource.style_resources, 'images/up-arrow.gif')}" 
    alt="Open-close"
    styleClass="msn{!count}" />

    <apex:includeScript value="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"/>

    <script>
        jQuery.noConflict();

        function doSomethingWithImg() {
            try {
                var imgElement = jQuery('.msn1');

                /*Do what you need to do with the element*/
            } catch (e) { /*Ignore Error*/ }
        }
     </script>

这是 jQuery 选择器的链接:jQuery 选择器文档

于 2012-05-14T15:53:19.237 回答