0

有没有更好的方法来写这个,所以我不必使用 [0] ,所以我可以通过 JQuery Text 而不是 innerText 访问文本?我不想使用 innerText 来实现跨浏览器兼容性。

$('#' + controlBestPractice)[0].innerText
4

4 回答 4

6

如果您的选择器返回多个元素(我们真的不知道里面是什么,例如它可能是),请先使用:controlBestPractice#div-id p

$('#' + controlBestPractice).first().text()

正如 bhamlin 在评论中指出的那样,您似乎正在使用 id 选择器,所以应该只有一个元素,所以这应该可以工作:

$('#' + controlBestPractice).text()
于 2012-07-17T16:39:57.660 回答
1

你可以尝试这样的事情:

$('#' + controlBestPractice + ':eq(0)').text();

或者

$('#' + controlBestPractice).first().text()
于 2012-07-17T16:40:59.617 回答
1

你们为什么要这样做.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
于 2012-07-17T16:42:54.440 回答
1

你不需要在[0]最后添加,因为它是一个 id 选择器。表示您通过#id 进行选择,并且由于 id 是唯一的,因此 jQuery 将只返回一个元素。

于 2012-07-17T16:43:11.583 回答