0

部分的なビューを含む div がいくつかあります。存在しない div への参照が何らかのエラーを表示しないのはなぜですか? たとえば、今のところ taskN div は 1 つしかありません。

<div id="task1">
    @Html.Partial("~/Views/PartialViews/TaskDosCommand.cshtml")
</div>

これはdivを表示する私のjQueryです:

$('#task' + task.PrestoTaskType).show();

が 1 の場合task.PrestoTaskType、task1 div が正しく表示されます。ただし、task.PrestoTaskType2 のように 1 以外の場合は、何も表示されません (これで問題ありません) が、エラーは発生しません。Web ページにエラーは表示されず、Chrome 開発者ツール コンソールにも何も表示されません。

ここに画像の説明を入力

存在しない DOM 要素にアクセスしたときに何らかのエラーが表示されるべきではありませんか?

4

3 に答える 3

3

いいえ、jQuery が行うことは.show() 、jQuery オブジェクトがラップするすべての要素であるためです。それがまったく要素がない場合は、そうです。

これはまさに jQuery のモナドに似た側面であり、それが jQuery を非常に便利なものにしています: 物事がそのように機能しない場合に記述しなければならないコードを想像してみてください:

var $whatever = $(...);
if ($whatever.length) $.doSomething();

これは単に悪いことです: 変数 (無駄を避けるために)条件を導入する必要があります...正確には何のために?

jQuery が一致したものを確認したい場合は、上記のように非常に簡単に行うことができます。.lengthおそらく.filterプロセスでも使用できます。

于 2013-10-06T14:42:11.820 に答える