在jQuery的.load函数中使用变量div ID时更正语法

时间:2014-04-10 15:43:56

标签: javascript jquery

我尝试使用jQuery的.load函数将新内容加载到未知ID的div中。我试图从子元素中获取其ID。从警报开始返回父ID:

<script language="javascript">
    $('#submitbtn').click(function(){
        var parentId = $('#windowanchor').parent().attr('id');
        alert('ID = ' + parentId);
    });
</script>

好。但是,在修改代码以包含.load函数时,不会加载任何内容:

<script language="javascript">
    $('#submitbtn').click(function(){
        var parentId = $('#windowanchor').parent().attr('id');
        $(parentId).load("plug.php?r=calendar&m=edit&id=1");
    });
</script>

我怀疑我使用的语法是错误的(js / jquery菜鸟)。请帮忙!

5 个答案:

答案 0 :(得分:3)

ID是唯一的,所以只需

<script language="javascript">
    $('#submitbtn').click(function(){
        $('#windowanchor').parent().load("plug.php?r=calendar&m=edit&id=1");
    });
</script>

无需获取ID,只需将其粘贴在选择器中并再次获取相同的元素即可!

答案 1 :(得分:1)

您需要在选择器中添加#前缀:

$("#" + parentId).load("plug.php?r=calendar&m=edit&id=1");

但是,更简洁的解决方案是只使用加载的引用而不获取ID:

$('#windowanchor').parent().load("plug.php?r=calendar&m=edit&id=1");

答案 2 :(得分:1)

<script language="javascript">
    $('#submitbtn').click(function(){
        var parentId = $('#windowanchor').parent().attr('id');
        $('#'+parentId).load("plug.php?r=calendar&m=edit&id=1");
    });
</script>

答案 3 :(得分:1)

您需要添加#

<script language="javascript">
    $('#submitbtn').click(function(){
        var parentId = $('#windowanchor').parent().attr('id');
        $('#'+parentId).load("plug.php?r=calendar&m=edit&id=1");
    });
</script>

答案 4 :(得分:0)

您需要在#前加parentId,以便选择器正常工作。

var parentId = '#' + $('#windowanchor').parent().attr('id');
$(parentId).load("plug.php?r=calendar&m=edit&id=1");

这样,如果id的父级#windowanchor属性为main,则选择器变为#main

虽然adeneo's solution是理想的;而不是获取父ID并运行另一个jQuery选择器,只需直接在.load()上调用$('#windowanchor').parent()方法就更有效了。