我有以下代码:
<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>
我想要显示价值&#34; GPP1&#34;当我点击它时。
$( "li.cmdTypeE" ).on("click", function() {
var selected = $(this).text(); //Can't work properly
});
然而,它会显示价值&#34; GPP1143&#34;。 我该怎么做才能获取值&#34; GPP1&#34;仅?
答案 0 :(得分:0)
请尝试以下代码:
<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/
答案 1 :(得分:0)
替换它: -
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 :(得分:-2)
试试这个:
<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);
}