【问题标题】:Selecting <li> value which contains the hidden <span> value选择包含隐藏 <span> 值的 <li> 值
【发布时间】:2015-06-07 05:47:05
【问题描述】:

我有以下代码:

<div id="left">
    <ul class="cmdSelected">
        <li class="cmdTitle">Test Case D</li>
            <li class="cmdTypeE">GPP1<span hidden>143</span></li>
            <li class="cmdTypeE">GPP2<span hidden>146</span></li>               
            <li class="cmdTypeF">UDA<span hidden>0</span></li>
            <li class="cmdTypeB">Complete<span hidden>1</span></li>
    </ul>
</div>

我想在单击时显示值“GPP1”。

$( "li.cmdTypeE" ).on("click", function() {
    var selected = $(this).text();   //Can't work properly
});

但是,它将显示值“GPP1143”。 我该怎么做才能只获取值“GPP1”?

【问题讨论】:

标签: jquery


【解决方案1】:

替换这个:-

 var selected = $(this).text(); 

有:-

var selected = $("#left >ul").find("li:selected").clone().children().remove().end().text();

var selected = $(this).clone().children().remove().end().text();

.clone() -- 克隆元素。
.children() -- 选择所有的孩子。
.remove() -- 删除所有子节点。
.end() -- 再次返回选中的元素。

【讨论】:

  • 感谢您的帮助!
【解决方案2】:

试试下面的代码:

<div id="left">
    <ul class="cmdSelected">
        <li class="cmdTitle">Test Case D</li>
            <li class="cmdTypeE">GPP1<span hidden>143</span></li>
            <li class="cmdTypeE">GPP2<span hidden>146</span></li>               
            <li class="cmdTypeF">UDA<span hidden>0</span></li>
            <li class="cmdTypeB">Complete<span hidden>1</span></li>
    </ul>
</div>

JS:

$(document).ready(function() {
$( "li.cmdTypeE" ).on("click", function() {
    var selected = $(this).contents().filter(function() { return this.nodeType == 3; }).text();
    console.log(selected);
    });
});

JSFiddle:https://jsfiddle.net/Lxs210La/

基于:https://stackoverflow.com/a/5915443/814110

【讨论】:

    【解决方案3】:

    试试这个:

    <div id="left">
    <ul class="cmdSelected">
        <li class="cmdTitle">Test Case D</li>
            <li class="cmdTypeE" onclick="clickonthis(this)">GPP1<span hidden>143</span></li>
            <li class="cmdTypeE" onclick="clickonthis(this)">GPP2<span hidden>146</span></li>               
            <li class="cmdTypeF" onclick="clickonthis(this)">UDA<span hidden>0</span></li>
            <li class="cmdTypeB" onclick="clickonthis(this)">Complete<span hidden>1</span></li>
    </ul>
    

    关于脚本:

    function clickonthis(obj) {
        var selected = $(obj).text();
        alert(selected);  
    }
    

    【讨论】:

    • 天啊,重复的在线javascript,这当然不是要走的路。此外,它不会改变任何东西,这不起作用。它输出“GPP1143”:jsfiddle.net/d43utya4/1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2015-12-20
    • 1970-01-01
    • 2023-03-27
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多