将CSS id作为JavaScript函数中的参数传递

时间:2014-03-29 06:49:00

标签: javascript html css

我有一个CSS ID,显示一个小红球和一个JAVASCRIPT函数。我想将CSS id作为JavaScript函数中的参数传递。我已经看过很多教程,但无法弄清楚。以下是代码:

CSS代码

#projectile{
    position: absolute;
    background-color: #ff0000;
    left:176px;
    top: 486px;
    width:10px;
    height:10px;
    border-radius: 8px;
    z-index: 9;
}

JAVASCRIPT代码

function gofish(projectile_id){
var projectile = getElementbyId(projectile_id);
start_x = projectile.offset().left;
start_y = projectile.offset().top;

function init()
{ setTimeout("gofish('projectile')", 500); }

3 个答案:

答案 0 :(得分:2)

让我们假设您正在使用jQuery,并且您希望jQuery对象使用offset()方法,因为普通DOM节点不存在此类方法

function gofish(projectile_id){
    var projectile = $('#' + projectile_id);
    var start_x = projectile.offset().left;
    var start_y = projectile.offset().top;
}

function init() { 
    setTimeout(function() {
        gofish('projectile');
    }, 500); 
}

答案 1 :(得分:2)

您的JavaScript中有一些错误。

  • getElementById应该有一个大写'',应该针对文档进行调用。
  • 我认为你要寻找的偏移属性是element.offsetLeft和element.offsetTop。
  • 你可以直接在setTimeout上定义一个匿名函数来调用init(),就像adeneo所建议的那样。
  • 您仍然需要在某处调用init()才能运行它。

以下是更新的JavaScript代码:

function gofish(projectile_id) {
    var projectile = document.getElementById(projectile_id);
    start_x = projectile.offsetLeft;
    start_y = projectile.offsetTop;
}

function init() {
    setTimeout(function () {
        gofish('projectile');
    }, 500);
}

init();

到目前为止,以下是行动中的代码:http://jsfiddle.net/JuvDX/

答案 2 :(得分:0)

这可能对你有所帮助..

    <!DOCTYPE html>
<html>
<head>

<script>
function myFunction(element)
{
alert(document.getElementById(element.id).value);
}
</script>
<style>
#para1
{
text-align:center;
color:red;
} 
</style>
</head>

<body>
<p id="para1" onclick="myFunction(this)" name="paragraph" >Hello World!</p>
</body>
</html>