jquery选择器帮助...以为我正确地遵循了这个例子......但是无法让它工作

时间:2010-03-22 18:27:10

标签: jquery jquery-selectors

我正在尝试在jquery中执行以下操作,但无法使其正常工作。

我想选择所有具有名为NODE_ID的自定义属性且值为49_3的DIV标记。然后选择并将src属性更改为其他图像。

这是HTML:

<div style="display: block;" id="71_7_sub_p_div" node_id="49_3">
    <span>
        <img src="../images/maximize.png"> &nbsp;Greenfield Industrial Park
    </span>
</div>   

这是脚本:

<script type="text/javascript">
    $(document).ready(function(){
        $("div[node_id='49_3']:has(img)").attr("src","../images/folder_closed.png");
    });
</script>

任何想法都表示赞赏。感谢。

1 个答案:

答案 0 :(得分:3)

$("div[node_id='49_3'] img").attr("src","../images/folder_closed.png");

这应该可行,但我建议您使用CSS来处理这些图像,而不是使用javascript来切换src。

<div style="display: block;" id="71_7_sub_p_div" node_id="49_3" class="maximize">
    <span>&nbsp;Greenfield Industrial Park</span>
</div> 

CSS

.maximize{
    background: url(/images/maximize.png) no-repeat;
    padding-left: 10px; // width of icon
}
.minimize{
    background: url(/images/folder_closed.png) no-repeat;
    padding-left: 10px; // width of icon
}

使用Javascript:

<script type="text/javascript">
    $(document).ready(function(){
        $("div[node_id='49_3']").removeClass('maximize').addClass('minimize');
    });
</script>

这样做的好处是,您可以轻松管理CSS中的不同状态样式,而无需在需要将URL更改为图像时挖掘javascript。它还可以让您轻松找出“文件夹”的状态。