javascript - 访问 HTML 标签的不同元素

标签 javascript jquery

我有一个按钮:

<a href="#" id="form-submit" class="btn btn-primary btn-lg ladda-button" 
data-style="contract" data-size="l">
    <span class="ladda-label">TESTLABEL</span>
</a>

我正在尝试通过 IF 语句访问其中的文本:TESTLABEL。我可以这样更改文本:

$('#form-submit').text('GO').button("refresh");

但是这个 if/else 语句每次都运行第一组代码 - 而不是 else if 部分。

console.log($('#form-submit').text());

if ($('#form-submit').text('TESTLABEL')) {
    $('#form-submit').text('GO').button("refresh");
} 
else if ($('#form-submit').text('GO')) {
    //do other code...
}

当我单击该按钮时 - 文本为 TESTLABEL,单击后该文本变为 GO。当我再次单击时,console.log 告诉我这个按钮的文本是 GO,但第一个 if 语句仍然运行,就好像它的文本是 TESTLABEL 一样。我做错了什么?

最佳答案

首先,文本位于 #form-submit 元素内的 span 元素内,因此您应该使用 $('#form-submit span') $('#form-submit .ladda-label') 选择它。

其次,在您的 if 语句中,您使用的是 text() 方法的 setter 版本。当该方法返回一个 jQuery 对象时,这将总是等于true。相反,使用 setter/getter 。试试这个:

var $button = $('#form-submit')
var $label = $button.find('span');
if ($label.text() == 'TESTLABEL') {
    $label.text('GO');
    $button.button("refresh");
} 
else if ($label.text() == 'GO') {
    //do other code...
}

关于javascript - 访问 HTML 标签的不同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29084390/

相关文章:

javascript - 两个选择选项 - 不需要验证和隐藏选项

javascript - Toggle Div 结合 CSS-Hover

javascript - 动态创建的 jQueryUI 微调器不工作

javascript - 使用 Remote 上的 channel 切换按钮更改电视浏览器上的页面?

javascript - CSS - 将所有子元素的总宽度设置为其父元素

javascript - d3.js,属性d : Expected number, “MNaN,NaNLNaN,NaN”

javascript - 如果 parent 关闭,如何关闭 child Accordion ?

javascript - 如何使用 jQuery forEach 语句?

javascript - 通过类外函数(或替代方法)操纵状态

jQuery 选择器和变量