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
}
});
});
其他可能的问题:
ID
的元素是否为输入元素?否则,用户将无法触发事件
元素的末尾.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');
}