Javascript 获取在if/else条件语句中使用的标记(<;span>;)的值

Javascript 获取在if/else条件语句中使用的标记(<;span>;)的值,javascript,jquery,Javascript,Jquery,下面是一个代码: <span id="dpos">30</span> <script> var pxwidth; $( "#id" ) .bind( "keydown", function( event ) { pxwidth = $("#dpos").text(); if (pxwidth === 0) { // do something } }); </script> 30 可变宽度; $(“#id”) .bind(“

下面是一个代码:

<span id="dpos">30</span>

<script>
var pxwidth;

$( "#id" )


.bind( "keydown", function( event ) {
 pxwidth = $("#dpos").text();

 if (pxwidth === 0)
 {
 // do something
 }

});

</script>
30
可变宽度;
$(“#id”)
.bind(“键控”,函数(事件){
pxwidth=$(“#dpos”).text();
如果(pxwidth==0)
{
//做点什么
}
});

这里,我试图获取在条件语句(if/else语句)中使用的span元素的值。但该语句不会执行。
的正确用法是什么?如果(pxwidth===?)

出现语法错误,您没有关闭绑定函数:

var pxwidth;

$( "#id" ).bind( "keydown", function( event ) {
    pxwidth = $("#dpos").text();

    if (pxwidth == 0) // <-- a double, not triple equal
    {
        // do something
    }
}); // <-- remember to include this

您的代码至少有两个问题:

1。语法错误:

如果这是您的全部代码,您将得到一个语法错误。它应该在浏览器的控制台中可见

2。将字符串与整数进行比较:

.text()
返回一个字符串,但您试图将其与整数进行比较(使用三重相等,同时检查数据类型)。在进行比较之前,必须将该字符串解析为整数

请尝试以下方法:

$(function() {
    $("#id").on("keydown", function(event) {
        var pxwidth = parseInt($("#dpos").text(), 10);

        if (pxwidth === 0)
        {
        // do something
        }
    });
});
其他可能的问题:

  • 您正在绑定到一个keydown事件。ID为
    ID
    的元素是否为输入元素?否则,用户将无法触发事件

  • 您是否试图在DOM准备就绪之前绑定事件?在DOM就绪回调中运行代码(参见我的示例),或者将代码移动到
    元素的末尾

  • 旁注:


    .bind()
    被弃用,取而代之的是
    .on()
    ,因为jQuery 1.7。

    不要使用
    ==
    来比较字符串和数字

    而不是:

    if (pxwidth === 0)
    
    使用:

    =
    仅返回
    真值
    值和类型都相等。
    $(“#dpos”).text()返回一个
    字符串,
    0
    是一个
    数字

    导致您这样比较它们:
    0==“0”
    ,这是错误的

    工作正常

    您的span中有
    30
    ,因此使用
    0
    进行检查将始终返回false

    编辑
    .text()
    函数以字符串变量的形式获取数据。因此,在
    if
    语句中,我使用
    进行比较


    给出实际运行的代码。仅供参考
    是一个标记,而不是一个属性。id到底是什么?一个表单字段???id是span的id他正在使用
    ==
    0
    “0”
    进行比较。我认为这是主要问题。你可能想提到你还添加了
    ”“
    如果
    ,否则,它仍然会失败。(我可以从你的答案中看出这一点,但寻找答案的人可能会忽略这一点)@Cerbrus-hmm,是的。编辑。
    if (pxwidth === 0)
    
    if (pxwidth == 0) /* or */ if (pxwidth === "0")
    
    var pxwidth = $("#dpos").text();
    alert(pxwidth);
    if (pxwidth === "30") {
        alert('hi');
    }