如何在javaScript中获取div名称?

如何在javaScript中获取div名称?,javascript,jquery,html,Javascript,Jquery,Html,我想在alert(name)中获取div名称,但它给出的是“未定义”。这些值来自数据库。所有其他警报都正常工作 这是我的HTML代码 <input class="rating form-control input-star-rate" id="<?php echo $rateid; ?>" name="<?php echo $arate_num; ?>" value="<?php echo $ratea; ?>" data-min="0" data-ma

我想在
alert(name)
中获取div名称,但它给出的是“未定义”。这些值来自数据库。所有其他警报都正常工作

这是我的HTML代码

<input class="rating form-control input-star-rate" id="<?php echo $rateid; ?>" name="<?php echo $arate_num; ?>" value="<?php echo $ratea; ?>" data-min="0" data-max="5" data-step="0.3" data-size="xs" style="display: none; text-align: center;" onchange="changeRate(this)"/>

在javascript中使用getAttribute

id.getAttribute("name");

在jquery中

$(id).attr("name");

注意:在代码中,这将显示
undefined
id.name
,因此更改为
id.getAttribute(“name”)

在javascript中使用getAttribute

id.getAttribute("name");

在jquery中

$(id).attr("name");

注意:在代码中,这将显示
undefined
id.name
,因此更改为
id.getAttribute(“name”)

不要通过将其id分配给原始的
id变量来更改该变量。试着用像


不要通过将原始
id变量的id指定给该变量来更改该变量。试着用像


如果该id被正确警告,那么问题只在于您将该id覆盖为id.id。为id输入的id使用不同的变量名。

如果id被正确警告,那么问题只在于您将id改写为id.id。为id输入的id使用不同的变量名。

问题在于您在函数中重新分配了
id
变量值:

function changeRate(id) {
    // ... 
    var id = id.id;
    // ...
}
之后,
id.name
当然是未定义的,因为
id
不再是一个HTMLInputElement对象,而只是一个字符串,当然它没有
name
属性

通常,
id
不是DOM元素参数引用的好名称。最好将其命名为
obj
,以避免与
id
属性混淆:

function changeRate(obj) {
    var ratingValue = obj.value;
    var ratingValue2 = parseFloat(ratingValue);
    alert(ratingValue2);

    var ratingValuePrevious = obj.getAttribute('value');
    var ratingValuePrevious2 = parseFloat(ratingValuePrevious);
    alert(ratingValuePrevious2);

    var id = obj.id;
    alert(id);

    var name = obj.name;
    alert(name);
}

问题是因为在函数中重新指定了
id
变量值:

function changeRate(id) {
    // ... 
    var id = id.id;
    // ...
}
之后,
id.name
当然是未定义的,因为
id
不再是一个HTMLInputElement对象,而只是一个字符串,当然它没有
name
属性

通常,
id
不是DOM元素参数引用的好名称。最好将其命名为
obj
,以避免与
id
属性混淆:

function changeRate(obj) {
    var ratingValue = obj.value;
    var ratingValue2 = parseFloat(ratingValue);
    alert(ratingValue2);

    var ratingValuePrevious = obj.getAttribute('value');
    var ratingValuePrevious2 = parseFloat(ratingValuePrevious);
    alert(ratingValuePrevious2);

    var id = obj.id;
    alert(id);

    var name = obj.name;
    alert(name);
}

试试下面的代码,让我知道它是否适合你

    var name = document.getElementById(id).attributes["name"].value;
    alert(name);

试试下面的代码,让我知道它是否适合你

    var name = document.getElementById(id).attributes["name"].value;
    alert(name);

我不确定您是如何调用changeRate()函数的,但我想如果您能够在alert(name)之前编写的警报中看到正确的值,那么您就可以正确地调用它了
现在是警报点(名称),如上述注释id.getAttribute(“名称”)应该可以解决您的问题。
如果问题没有解决,请告诉我们完整的stacktrace。

我不确定您是如何调用changeRate()函数的,但我想如果您能够在alert(name)之前编写的警报中看到正确的值,那么您就可以正确地调用它
现在是警报点(名称),如上述注释id.getAttribute(“名称”)应该可以解决您的问题。 如果问题未解决,请告知完整的stacktrace。

试试这个

var name = id.getAttribute('name');
alert(name);
试试这个

var name = id.getAttribute('name');
alert(name);

试试
$('input').attr('name')您确定$arate_num变量包含值吗?按F12键并检查开发工具中的元素时,“name”是否有值?请尝试
$('input').attr('name')您确定$arate_num变量包含值吗?当您按下F12键并检查开发工具中的元素时,“name”是否有值?