有没有更好的方法来写这个,所以我不必使用 [0] ,所以我可以通过 JQuery Text 而不是 innerText 访问文本?我不想使用 innerText 来实现跨浏览器兼容性。
$('#' + controlBestPractice)[0].innerText
有没有更好的方法来写这个,所以我不必使用 [0] ,所以我可以通过 JQuery Text 而不是 innerText 访问文本?我不想使用 innerText 来实现跨浏览器兼容性。
$('#' + controlBestPractice)[0].innerText
如果您的选择器返回多个元素(我们真的不知道里面是什么,例如它可能是),请先使用:controlBestPractice
#div-id p
$('#' + controlBestPractice).first().text()
正如 bhamlin 在评论中指出的那样,您似乎正在使用 id 选择器,所以应该只有一个元素,所以这应该可以工作:
$('#' + controlBestPractice).text()
你可以尝试这样的事情:
$('#' + controlBestPractice + ':eq(0)').text();
或者
$('#' + controlBestPractice).first().text()
你们为什么要这样做.first()
?这是一个ID,应该只有一个。
$('#' + controlBestPractice).text()
会很好用
我想您可能需要.first()
在以下情况下,但这只是一种糟糕(令人困惑)的选择方式:
<div id="foo">
<div class="bar">a</div>
<div class="bar">b</div>
<div class="bar">c</div>
</div>
controlBestPractice = "foo .bar";
$('#' + controlBestPractice).text(); // returns abc
$('#' + controlBestPractice).first().text() // returns a
你不需要在[0]
最后添加,因为它是一个 id 选择器。表示您通过#
id 进行选择,并且由于 id 是唯一的,因此 jQuery 将只返回一个元素。